Skip to main content

Full text of "TS-2068 Up-date"

See other formats


January  1988 


TS2068  UP  DATE 

the  user's  NEWS 


EXTRA 


MEMORY 


(3 


TS-2068  UP-DATB 
1317  Stratford  Ave,   Panama  City,   FL  32404 
<904  871  4513) 


The  Extra  Memory  Section 


Do  we  Need  Extra  Memory? 

Good  question,  especially  now  that  disk  drives 
are  on  the  scene  for  the  TS-2068,  A  Disk  Drive  is 
actually  a  "box  of  extra  memory".  The  problem  Is, 
one  has  to  place  the  data  from  disk  INTO  the  TS-2068 
memory  chips  for  ft  to  be  used.  So,  that  means  that 
we  are  limited  by  the  FREE  memory  of  the  TS-2068  as 
to  the  LENGTH  of  the  program  that  it  can  handle* 
FREE  MEMORY  Is  38652  bytes.  Now  If  we  flM  up  that 
memory  with  a  program,  there  is  no  space  left  for 
DATA  to  be  stored,  so  we  have  to  reserve  an  amount 
of  FREE  to  handle  data  that  wi II  be  generated  by  the 
program.  Usually  the  trade  off  is  about  50-50. 
Then  a  program  will  take  up  about  19K  and  there  will 
be  an  equal  amount  of  space  reserved  to  store  and 
manage  data, 

19K  of  memory  Is  OK  for  games  and  trivia  but 
lacking  to  store  extensive  software  programs.  Also, 
19K  is  a  bothersome  limit  upon  the  amount  of  data 
that  can  be  stored.  There  should  be  a  way  of 
"stretching"  FREE  memory  so  that  longer  and  more 
useful  programs  can  be  operated  and  still  have 
enough  FREE  memory  for  data.  THERE  IS!  We  can  use 
the  DOCK  BANK  for  programs  and  the  HOME  BANK  for 
DATA,  We  can  put  a  64K  program  In  the  Dock  Bank, 
and  keep  almost  all  of  the  38K  of  FREE  memory  for 
data  storage  and  management.  This  capability  of  the 
TS-2068  has  been  neglected  and  f&m  realize  the 
Increase  in  power  that  the  use  of  EXTRA  MEMORY  BANKS 
offer.  Let  me  put  it  this  way.  If  you  give  me 
twice  as  much  memory  storage  to  store  PR0GRAMMINK3,  I 
can  give  you  TEN  times  as  much  software  power, 

A  software  program  is  built  with  "kernel 
routines",  packages  of  programming  Hiat  are  used 
over  and  over  by  different  elements  of  the  program. 
As  program  length  increases  there  Is  less  need  to 
create  new  kernel  routines,  and  the  programming 
becomes  quite  cryptic,  using  mostly  "GO  TO  and  GO 
SUB"  within  the  program  lines.  Also,  it  is  not 
necessary  to  create  new  variables.  Then  one  more 
"K"  of  programming  can  produce  functions  that  would 
require  as  much  a  5  or  6K  of  programming  to  produce 
without  the  kernel  cells.  So  then,  picture  the 
Increased  capability  that  results  from  using  64K  of 
memory  for  a  program  In  the  dock  bank,  as  versas  the 
ordinary  limit  of  19K!  Then,  the  FREE  memory  of 
38652  bytes  Is  available  for  DATA  management  and 
storage. 


THE  LONESOME  DOCK:  In  the  beginning  TImex 
started  producing  Dock  Cartridges  with  programs. 
These  were  mostly  games  I  ike  "F I ight  Simulator", 
good  games  but  soon  tiring.  Since  then  few 
Industries  have  produced  software  in  cartridges.  As 
a  result,  the  Dock  Door  is  hardly  ever  lifted,  and 
the  capability  has  languished.  One  reason  for  that 
Is  the  cost  of  producing  both  the  cartridge  and  the 
software  In  EPROM,  A  reasonable  price  for  a  good 
Dock  Cartridge  software  would  be  around  $60^00^  +00 
expensive  for  our  tastes,  and  the  reason  for  our 
Ignoring  the  Extra  Memory  functions.  One  other 
reason  Is  the  tricklness  of  programming  required  for 
using  extra  memory.  But,  IS  It  all  that  tricky? 
And,  CAN  WE  LEARN  HOW? 

Ordinarily/  publications  must  reserve  their 
page  space  to  cover  many  subjects,  and  the  detail ed 
continuous  coverage  of  one  subject  cannot  be 
attempted,  UP-DATE  will  undertake  to  bring  you 
detailed  and  continuous  coverage  of  EXTRA  MEMORY  In 
this  section.  We  start  In  this  Issue  with  The 
Concepts  Of  EXTRA  MEMORY  PROGRAMMING,  We  w 1 1 1 
progress  through  the  detal Is  of  programming  In  extra 
memory  banks,  Non  Vol atl  I e  Ram>  the  use  of  EPROM 
Cartridges,  Programming  EPROMS,  the  use  of  RAM  DISK, 
and  the  use  of  Disk  Drive  to  support  extra  memory 
programs.  This  Issue  also  brings  an  article  In  the 
Technical  Section  about  converting  a  TS-1000  64K  RAM 
to  a  DOCK  Memory  board,  Programml ng  wl 1 1  be  gi ven 
In  both  BASIC  and  In  Machine  Code,  starti ng  in  easy 
to  understand  basics. 

There  are  people  who  are  Intense! y  Interested 
in  this  subject  and  have  done  some  fantastic  thingsv 
Mr,  Craig  Davis  Is  engaged  in  transferring  the  Smart 
Text  software  to  run  In  Dock  Bank  EPROM, 
coordinating  disk  drive  for  both  screens  and  memory 
storage.  Hopefully  he  will  tell  us  about  It  In  a 
future  article,  I  will  be  discussing  the  use  of  RAM 
In  Extra  memory,  Mr,  Larry  Kenny  (Larken 
Electronics)  can  tel I  us  things  about  RAM  DISK. 
And,  Mr,  Eric  Johnson  has  promised  •*  a  construction 
article  on  Extra  Memory  RAM,  If  you  have  done  any 
work  In  this  area,  UP-DATE  wi 1 1  publ ish  your 
articles.  New  user  I nterest  wll I  bring  new  product 
development.    Lets  take  extra  memory  "to  the  limit"! 


January  1988 


Jan.  1988  Eailorial 

HI,  you  TS-2068  Die  Hards!  Die?  Heck,  I'll  be 
using  my  '68  till  they  back  up  the  hearse  to  my 
widow's  door.  This  January  1988  Issue  of  UP-DATE 
brings  In  some  new  writers,  new  to  UP-DATE,  but  not 
new  to  the  TS-2068  user  groups,  I'll  give  you  a 
short  Introduction  to  each  of  these  outstanding 
writers  at  the  end  of  their  columns.  They  are 
successful  business  peopi e  whose  time  Is  val uabi e, 
but  still  they  find  time  to  contribute  their 
knowledge  FREE,  We  can  show  appreciation  by  a  card 
of  thanks.  Also,  this  Issue  begins  new  building 
block  sections  about  Extra  Memory,  Larken  Disk, 
Aerco  Disk,  and  Telecomputing,  These  sections  will 
build  as  more  Issues  are  published,  Hope  you  like 
the  direction  that  UP-DATE  is  'a  goln. 

UP-DATE  will  let  our  writers  "hang  It  all  out", 
praising  the  systems  that  they  like.  Enthusiasm 
unbounded!  All  of  our  disk  systems  are  good,  each 
having  Its  own  better  features.  We  tie  these 
systems  together  with  review  articles  In  this  Issue 
that  should  form  a  departure  point  for  continuing 
coverage.  For  those  who  dont  yet  have  a  disk 
system,  this  should  be  a  mouth  watering  bit  of 
reading.  Even  those  who  have  disk  systems  should 
find  some  new  Information  In  the  reviews.  Want  TWO 
DOS    systems  with  your  present  equipment?    That  too! 

UP-DATE  DISK  SUPPORT:  The  capabi  I  Ity  now 
exists  to  provide  disk  support  to  users  who  have  the 
Amdek  Amdisk  3"  disk  drive.  However,  due  to  the 
cost  of  the  3"  diskette,  all  who  order  the  Issue 
Disk  on  3"  disk  should  send  a  disk  to  have  the 
programs  recorded  thereon.  Issue  diskettes  are  also 
available  In  all  formats  of  5  1/4",  for  Ollger  Safe, 
Larken  Disk,  and  Aerco  FD  68,  If  ordering  for  5 
1/4"  drive  please  specify  for  SS  or  DD,  and  40  or  80 
track.  The  October  Issue  Diskette  Is  a  success, 
with  about  1/3  of  the  subscribers  ordering.  That 
Mall  Merge  program  really  does  Its  thing,  for  almost 
every  type  of  Listing  needs,  from  Mai  I  Lists,  to 
inventries,  to  invoices,  to  the  daily  unit  milk 
producing    records  for  a  dairy  herd,  ^Bi'^rh-pro^ws^ 

It  being  COLD  up  Noarth,  this  issue  will  try 
to  warm  you  up  by  filling  space  with  some  Sunny 
Florida  file  photos.  They  are  di rect  from  the 
Chamber  of  Commerce.  For  those  who  dont  know, 
Panama  City  Is  up  In  the  "Pan  Handle"  of  Florida,  on 
the  North  Coast  of  the  Gulf  of  Mexico.  There  are 
rolling  hills,  large  navlgatable  rivers,  limestone 
springs  that  gush  sparkling  water,  dense  hardwood 
forrests,  and  beautiful  clear  lakes.  We  have  four 
mild  seasons  of  the  year.  Our  tourist  seasons  are 
the  Summer  for  the  Yanks  and  the  Winter  for  our 
"Snow  bird"  Canadian  friends.  But  our  best  seasons 
are    the  Spring  and  Fall,  together  about  five  months 


of  delightful  temperatures  ranging  from  65  to  85 
degrees.  It  Is  over  600  miles  from  my  house  to 
Miami  and  another  hundred  down  to  the  Keys, 

WIMTER  FEST  IN  ORLANDO,  FLORIDA:  Now  Iff 'n  you 
want  to  warm  up  the  bod  and  attend  a  TIMEX  COMPUTER 
FEST  at  the  same  time,  then  comoan  down  to  the 
Winter  Timex  Fest  In  Orlando  in  early  MARCH  88. 
Thats  the  time  when  you  think  that  Winter  should  be 
about  over,  but  It  'aint.  The  details  are:  Place: 
Marlott  Hotel,  Orlando  Florida,  Time:  March  4 
through  March  8,  1988,  Reservations  are  necessary 
ONLY  if  you  want  to  stay  at  the  Marlott  Hotel, 
Otherwise  It  Is  no  sweat  for  motel  space  elsewhere 
around  town.  You  are  encouraged  to  pre-register  for 
the  FEST  Itself,  but  you  dont  have  to  to  attend. 
Registration  at  the  door  Is  $8,00  Single  or  $12,00 
Family,  Pre-reglstratlon  by  mall  Is  $5,00  Single  or 
$9,00  Family,  Mail  to:  Winter  TImex  Fest,  249  N. 
Harden  Ave,,  Orange  City,  FL  32763,  Contact  Is  Eric 
Johnson  at  that  address.  The  Marlott  Hotel  Is  at 
the  South  edge  of  Orlando,  very  convenient  to  Disney 
World,  Sea  World,  Circus  World,  Cyprus  Gardens,  and 
other  World  Family  attractions.  It  Is  about  45 
miles  to  the  East  Coast  beaches  and  the  Space 
Center,  What  a  great  opportunity  for  a  combined 
Winter  Fest  and  Family  vacation!  Your  hosts  are  the 
combined  TSUGs  of  Florida, 

FILING  UP-DATE  PAGES:  The  pages  are  numbered 
by  the  color  section  that  they  belong  to.  Please 
remove  the  staples  and  file  the  pages  In  your 
UP-DATE  booklet.  New  page  separators  are  the  front 
and  back  covers  of  this  Issue  titled:  "EXTRA  MEMORY" 
and       "Telecomputing",  UP-DATE     needs  more 

contributing  writers  to  cover  these  special 
subjects:  Ollger  Safe  System,  Larken  Disk  System, 
Aerco  FD-68  Disk,  TOS  (Zebra)  Disk,  CP/M  and  RP/M, 
Telecomputing,  and  general  articles  on  programming. 
The  sharing  of  your  knowledge  will  be  appreciated  by 
all, 

NEW  SOFTWARE:  This  Issue  brings  some  new  and 
Interesting  software  In  the  yellow  pages.  Herb 
Bowers,  an  eminent  authority  on  INCOME  TAX,  Is  just 
In  time  for  our  dreaded  TAX  REPORTS.  Herb  promises 
to  save  you  money  with  his  software,  and  GET  THIS! 
He  climbs  way  out  on  a  I Imb  and  sez  that  if  you  use 
his  tax  program  and  are  penalized  by  IRS,  HE  PAYS 
THE  PENALTY!  Now  that  Is  what  I  call  CONFIDENCE, 
Also,  Herb  brings  us  "Vanna  Brlte"  (Hmmm), 

Then  JOHN  McMlCHAEL  offers  a  Interesting 
combination  of  hardware  and  sofware  to  use  the 
Inexpensive  Commodore  Plotter  to  draw  airplanes  In 
flight,  pretty  girls,  and  fantastic  graphics.  One 
needs  to  buy  a  $49,95  Commodore  plotter  to  do  alia 
that,  I'm  gonna  do  it  because  the  plotter  Is  a  nice 
peice  of  equipment  and  the  new  capability  will  be 
both  fun  and  useful. 


1 


January  1988 


Next,  a  new  edition  of  Smart  Text  for  Otiger 
V2-35  EPROM  is  off  erred.  This  one  has  FULL  EDIT 
during  input  typing,  a  expanded  Mail  Merge  annex. 
Automatic  Column  printing,  and  a  special  printer 
set-up  for  Daisy  Wheel  printers.  These  columns  are 
samples  of  the  Auto  Column  Printing  function.  No 
Cut  and  Patch,  the  columns  print  automatically, 

UP-DATE  HEADQUARTERS  has  added  quite  a  group  of 
things.  Added  for  your  support  are,  the  Amdisk  3" 
drives,  Larl<en  SKDOS  Cartridge,  Avantex  300-1200 
baud  modem,  Specterm  Sl/0  interface,  Specterm  64 
Software,  another  TS-2068  with  a  4  Drive  system,  and 
Aerco  FD-68  Disk  system  with  256K  Memory.  Already 
on  hand  was  the  Ollger  Safe  System.  You  should 
notice  an  improved  print  In  this  Issue  resulting 
from  the  addition  of  a  Daisy  Wheel  printer,  I  hope 
to  find  some  BBS  boards  somewhere  to  down  load  some 
CP/M  software  for  the  Aerco  FD-68  users.  Anybody 
got  a  good  source?  CP/M  is  a  subject  that  needs 
exploring  in  depth.  Up-Date  needs  a  writer  who  Is 
willing  to  take  us  by  the  hand. 

THE  UP-DATE  BBS:  As  the  learning  curve 
flattens  out,  a  UP-DATE  BBS  will  be  set  up  using  the 
Aerco  256K  RAM  as  RAM  DISK,  with  the  Larken  SKDOS 
Cartride,  augumented  by  about  3  Mbts  of  disk 
storage.  What  I'm  planning  is  a  informal  BBS  that 
is  exclusively  for  the  subscribers  and  has  about 
three  sub  boards.  One  will  be  for  program 
downloads,  another  for  friendly  message  interchange, 
and  one  for  shopper  service.  Suggestions  and 
helpful  guidance  will  be  appreciated, 

A  Cheap  and  Excellent  Twin  Disk  Drive 
For  $49.95 

Yep,  a  Twin  Disk  Drive,  In  a  cabinet,  with 
built  In  power  supply,  ready  to  plug  In  and  use,  FOR 
$49.95  plus  shipping!!  That  Is  the  Amdek  Amdisk 
III,  a  neat  little  3  inch  drive.  There  are  a  couple 
of  catches  to  the  deal.  The  diskettes  are  not 
"Floppies"  but  "Hardies",  The  diskettes  are  more 
like  a  thin  cassette,  a  sandwich  wafer  of  hard 
plastic  that  protects  the  enclosed  disk.  The  disk 
Itself  has  a  center  sprocket  that  the  drive 
mechanism  engages  to  spin  the  disk.  It  appears  to 
be  designed  to  enhance  long  life  of  the  diskette. 
The  catch  Is,  the  price  of  the  diskettes  ($4.95 
each).  That  would  be  bad  if  one  had  to  replace  them 
often,  but  I  believe  the  diskette  should  last  for  at 
least  a  year  or  more.  Now  ordinarily,  a  twin  Disk 
Drive  unit,  will  cost  about  $240.00,  the  price 
broken  down  to  $160,00  for  two  drives,  plus  $80,00 
for  the  drive  enclosure  and  power  supply.  So,  you 
can  get  the  Amdisk  III  for  $49,95,  plus  10  diskettes 
($49.95),  and  still  be  ahead  about  $140.00.  One 
more  catch  is  the  fact  that  the  disk  drive  reads  and 
writes  to  one  side  of  the  disk  at  a  time.  This  may 
not  be  a  biggie  as  each  side  formats  to  195K  of  disk 


space  for  program  and  data  storage.  When  one  side 
is  f  i  lied  with  data  you  just  flip  the  disk  cartridge 
over  for  the  next  195K  of  storage.  The  total  disk 
capacity  (both  drives)  is  780K,  A  nice  aff ordabi e 
disk  drive  system. 

Later  I  hooked  up  the  Amdisk  drives  in  series 
with  t-*o  5  1/4"  drives  to  operate  as  "drives  2  and 
3"  of  a  four  drive  system.  This  allows  easy  copying 
of  programs  and  data  between  standard  5  1/4"  disk 
and  the  3"  drives  or  direct  LOAD  and  SAVE  to  either. 

The  Disk  Drive  comes  with  a  data  cable  that 
wont  fit  your  disk  controller.  That  Is  only  a  minor 
problem,  as  the  edge  card  connectors  of  the  drives 
Inside  are  Identical  to  the  edge  card  connector  of 
your  controller  card,  I  had  a  data  cable  fabricated 
at  a  local  computer  repair  shop  (cost  $21.00),  Then 
it  took  only  a  few  minutes  to  remove  the  case  top 
and  replace  the  existing  cable  with  the  new  one  that 
fits  the  TS-2068  Disk  Dri ve  Control  I er.  Problem 
solved,  but  you  can  add  $21,00  to  the  system  cost, 
making  It  $120,80  for  the  Amdisk  twin  drive  plus  the 
10  diskette  cartridges.  The  drives  operated 
perfectly  upon  first  hook-up.  Also,  it  has  a 
cooling  fan  to  keep  down  heat  problems.  Many  of  the 
more  expensive  drive  enclosures  lack  good  heat 
dissipation.  This  is  a  fine  disk  drive  system,  but 
dont  expect  to  be  able  to  buy  software  on  these 
expensive  3  inch  diskette  cartridges,  I  am  glad 
that  I  purchased  mine  because  they  make  excellent 
additional  disk  capacity  to  my  other  drives,  and  I 
believe  that  the  diskette  cartridges  will  last 
forever.  Source:  Peripherals  Direct  Ltd.,  PO  BOX 
4301,  North  brock,  IL  60062,  Tel:  1  800  332  9988. 
They  take  plastic  money  but  charge  a  service  charge 
for  it. 

I  am  fascinated  by  a  ad  in  Osmputer  Shopper  for 
a  Zerox  16/8  bit  CPU  Computer  with  10  mbt  hard  drive 
that  sold  about  two  years  ago  for  over  $4000.00  and 
is  now  offered  at  $349.00.  That  might  make  a  better 
BBS  system  If  I  can  find  a  BBS  software  for  it. 
Subscriptions  to  UP-DATE  are  now  at  about  150  and 
still       building,  I    have    received    a    lot  of 

compliments  and  no  gripes,  which  makes  me  want  to 
try  harder.  Wishing  everyone  a  successful  1988 
year,  Ed, 


January  1988 


Extra  Memory  Progranwlng 


Most  of  us  can  visualize  the  con^uter's 
"regular"  memory.  We  know  that  the  ROM  part  of 
memory  has  "fixed"  machine  programming  put  there  by 
TImex  when  they  built  the  computer,  and  that  there 
Is  a  section  called  RAM  that  we  store  our  own 
programs  In.  To  carry  this  visualization  further, 
we  will  do  some  diagrams  that  splits  up  the  memory 
Into  CHUNK  SECTIONS.  The  chunks  wl 1 1  be  Identified 
by  the  ADDRESS  that  the  computer's  CPU  uses  to  send 
and  receive  data  to  and  from  the  chunks  of  memory. 
Please  refer  to  Figure  1  for  the  visualization. 

Figure  1 

-0 

Now  that  Is  a  busy  diagram  Isn't  It.  The  left 
block  Is  what  we  normally  visualize,  having  two 
sections  of  memory,  "ROM  and  RAM",  The  center  block 
depicts  another  64K  "BANK  of  MEMORY"  called  "The 
XROM  BANK",  TImex  put  only  8K  of  memory  there  to 
handle  such  things  a  Cassette  Load  and  Save,  When 
we  type  a  LOAD  or  SAVE  command,  the  computer 
switches  OUT  Chunk  0  from  home  bank  and  switches  IN 
Chunk  0  of  the  XROM  Bank,  to  do  the  LOAD  or  SAVE. 
Notice  that  the  other  "Chunks"  of  the  XROM  Bank  are 
vacant,  having  no  Memory  Chips  Installed,  TImex 
didn't  even  put  sockets  under  the  hood  for  more 
memory  chips.  Also,  notice  that  the  block  on  the 
right  Is  named,  "The  Dock  Bank",  and  all  three  BANKS 
have  the  same  CKLh^S  Identified  in  the  same  manner, 

A  CHUNK  Is  8K  (8192  bytes).  As  we  get  Into 
Extra  Memory  we  wl II  transfer  CHUNKS  of  Memory  Chips 
IN  and  OUT  of  the  range  of  addresses  that  the  CPU 
controls.  ;  As  we  visualize  the  computer,  the  CPU 
"Sees"  the  memory  chips  that  are  In  the  left  block, 
"the  HOME  BANK",  Now  suppose  that  we  add  some 
memory  chips  and  fix  them  so  that  they  are  In  "CHIMK 
7"  of  the  DOCK  BANK  (the  right  block  of  figure  1). 
Would  the  CPU  "see"  that  group  of  memory  chips?  NO, 


7 

7 

c 

5 

s 

u. 

f 

3  ^ 

2 

3 

z_ 

t 

Z 

/ 

1 

} 

0 

0 

because  the  CPU  can  see  (address)  only  64K  at  one 
time,  and  the  TS-2068  Is  fixed  so  that  the  HOME  bank 
Is  what  the  CPU  normally  sees.  Here  Is  where 
PROGRAMMING  comes  Into  the  act.  We  can  do  some 
PCXES,  and  wipe  out  CHUNK  7  of  the  HOME  BAhK  and 
make  the  CPU  see  CHlM  7  of  the  DOCK  BANK  Instead. 

When  we  do  that.  Chunk  7  of  the  HOME  bank  will 
still  be  available  for  storage  of  data.  Now  that  Is 
confusing,  so  we  will  transfer  attention  now  to 
figure  2  to  see  how  that  can  be  possible.  In  figure 
2  we  delve  Into  the  way  a  program  I Ine  works  from  a 
Extra  Memory  bank.  The  senarlo  Is:  We  have  a  BASIC 
program  In  Chunk  7  of  the  DOCK  Bank,  and  that 
program  Is  running.  The  TS-2068  always  runs 
programs  lines  In  the  HOME  BAhK,  no  matter  what  bank 
the  program  lines  are  stored  In,  The  Ingenuoie  way 
that  this  happens  Is  klnda  confusing  and  we  will 
delve  Into  that  later.  The  key  point  here  Is: 
Since  each  program  line  runs  In  the  HOME  BAI^,  the 
CPU  "sees  all  64K  of  the  home  bank",  and  Stores  DATA 
that  Is  being  generated  In  HOME  BANK  RAM. 

PMC 


StfH  referrfng  to  Figure  2,;. the  lines  of 
programming  th;at  qre  itn  the  Dock  Bank  are  picked  up 
ONE  LINE  AT  THE  TIME,  placed  In  the  "AROS  BUFFER"  of 

the  HOME  BANK  and  operated.  Say  that  the  Hne  has 
programming  that  sez  <LET  A$="l  go  to  Church  on 
Sunday ">,  Then  the  contents  of  A$  Is  stored  In  the 
HOME  BANK  RAM,  Then  when  the  last  part  of  the  line 
of  programming  Is  finished.  It  Is  replaced  with  the 
NEXT  line  of  programming  that  is  In  the  DOCK  BANK, 
and  that  line  Is  executed.  The  Dock  Bank  program 
continues  to  run,  one  line  at  a  time,  until  the  last 
line  of  the  program  has  finished.  So,  In  effect, 
the  CPU  can  manipulate  TWO  64K  banks  of  memory  at 
the  same  time. 


1 


January  1988 


Now  to  complete  the  "visualization",  lets 
transfer  our  attention  to  figure  3,  where  we  have 
added  a  disk  drive,  a  printer,  a  monitor,  a  modem, 
and  a  cassette.  We  are  still  operating  the  program 
that  Is  In  the  DOCK  BANK,  one  line  at  a  time.  The 
LINE  of  programming  that  is  operating  is  In  the  AROS 
BUFFER  of  the  HOME  BANK.  That  line  of  programming 
can  contain  LPRINT  CONWANDS,  or  PRIWT  commands,  or 
DISK  LOAD/SAVE  commands,  or  Cassette  commands,  or 
just  anything  that  the  TS-2068  can  do.  If  data 
variables  are  created,  as  when  receiving  data  from  a 
modem,  the  data  Is  stored  In  the  HOME  BANK  RAM.  OR, 
data  that  Is  In  the  home  bank  Ram  may  be  printed  by  a 
LPRI^f^  command  In  the  program  line. 


Figure  3 


Now  that  we  have  the  concepts  of  Extra  Memory 
Operation  In  focus,  we  wl II  go  on  to  the  "how  to  do 
It"  phase.  One  could  survive  by  Just  plugging  In  a 
cartridge  and  typing  RUN,  but  since  Dock  Cartridge 
Software  Is  about  as  scarce  as  hen's  teeth,  we  dont 
have  that  easy  option.  Besides,  we  want  to  learn  how 
to  do  It  anyway.  Now  we  will  look  at  figure  4  and 
see  a  fly  in  the  soup.  The  soup  Is  HOME  BANK  Memory, 
and  the  pesky  fly  Is  "PROG".  PROG  is  the  memory 
address  where  the  CPU  finds  the  address  of  the  first 
byte  of  a  BASIC  program.  Normally  PROG  Is  at  address 
26710,  and  the  first  1 1 ne  of  a  basi  c  program  wl 1 1 
start  at  26710,  which  Is  right  slap  In  the  middle  of 
CHUNK  3  of  the  home  bank. 

J  Figure  4  ?^^><' 


  CkUi\K  ^ 

As  we  get  into  the  methods  of  BANK  SWITCHING,  we 
must  tell  the  CPU  "where  to  find  PROG".  We  wi  II  do 
that  later.  Right  now  we  must  learn  how  to  switch 
banks.  We  will  use  the  term  "Enable"  to  mean  the 
chunks  of  memory  that  the  CPU  sees  for  program  lines. 
For    example    If    we  enable  Chunks  4  through  7  of  the 


DOCK  bank,  then  the  CPU  will  not  see  chunks  4-7  of 
the  HOME  bank,  and  WILL  see  chunks  4-7  of  the  DOCK 
bank.  Bank  switching  Is  accomplished  by  using  the 
OUT  command.  "OUT  port  244"  is  used  to  designate  the 
chunks  of  memory  to  enable.  It  Is  easier  to 
visualize  if  we  use  BINARY  numbers  with  the  OUT 
conmand.  OUT  244,  BIN  00000000  would  enable  all  8 
chunks  of  the  HOME  BANK,  while  OUT  244,BIN  11111111 
would  enable  all  8  chunks  of  the  DOCK  bank.  Please 
refer  to  figure  5  for  a  visualization  of  the  effect 
that  each  "bit"  of  the  binary  number  has  upon  the 
chunks  of  memory  enabled. 


"4  PRmTEH.  i  <yifmx^ 


The  easiest  and  most  simple  way  of  using  extra 
memory  banks  Is  to  enable  chunks  4  through  7  at  one 
time.  OUT  244,BIN  11110000  will  enabi e  chunks  4 
through  7  of  the  Dock  bank.  Then  I f  you  want  to  stop 
using  program  lines  In  the  dock  bank,  OUT  244,B IN 
00000000  would  enable  all  8  chunks  of  the  HOME  bank. 
Remember,  each  of  the  bits  affect  a  single  chunk 
enable.  Zero  enables  a  Home  bank  chunk,  and  "1" 
enables  a  dock  bank  chunk.  The  "OUT  244,BIN  number" 
can  be  done  In  the  direct  mode  or  from  within  a  line 
of  programming  to  switch  bank  chunks. 

Now  suppose  that  we  want  to  use  a  program  that 
is  In  the  Dock  Bank  chunks  4  through  7.  OUT  244,BIN 
11110000  would  do  It.  BUT,  the  CPU  looks  for  the 
first  line  of  a  program  at  the  address  of  PROG,  and 
PROG  Is  sitting  at  address  26710  In  chunk  3  of  the 
home  bank,  (re-vlsit  flgurei^).  Now  we  must  change 
PROG  to  the  address  of  the  first  line  of  our  program 
that  is  in  the  DOCK  bank.  The  first  address  of  CHUNK 
4  of  the  Dock  bank  Is  32768.  But  we  cannot  start 
there,  as  the  first  8  bytes  of  a  dock  program  is 
reserved  for  "control  codes".  See  the  tab I e  of 
control  codes  In  figure  6.  Please  study  the  table  a 
bit  and  come  on  back. 

Figure  6 

Value  Significance 
1=Baslc  and  MC.  2=MC  only 
1=LR0S  or  2=AR0S 
A  two  Byte  Address 
Second  Byte 
BIN  0=HOME.  l=Dock 
0=No  and  1=Yes 
2  Byt  Nbr  for  1 ngth  of 
MC  pgm  starting  at  26688. 


Adr. 

Meaning 

23768 

Language  type 

23769 

Cartridge  Type 

23770 

Program  Start 

23771 

23772 

Chunk  Sel ect 

23773 

Auto  Start? 

23774 

No.  of  Bytes 

23775 

reserved 

3 


EPROH  OR  RAW 

O.K.  You  can  now  see  that  we  want  to  move  PROG 
to  address  32775  which  will  be  the  first  byte  of  the 
program  lines  In  the  docl<  bank.  We  can  do  that,  but 
now  we  are  getting  to  a  point  where  procedures  vary 
between  using  RAM  or  EPROM  in  the  Extra  Memory  Bank, 

The  discussions  so  far  have  been  applicable  to 
both  EPROM  and  RAM  in  the  dock  bank.  We  will  now 
concentrate  upon  handling  RAM  Memory,  and  leave  EPROM 
for  another  article.  One  canot  just  type  and  EhJTER 
program  lines  into  the  Dock  Bank  as  we  are  accustomed 
to  doing.  It  is  necessary  to  first  put  the  program 
lines  in  HOME  BANK  Memory,  and  then  move  the  program 
lines  into  the  Dock  Bank  Memory  for  operation.  The 
objectives  and  steps  of  operation  are:  1.  Move  PROG 
to  Adr  32776,  2,  LOAD  a  Basic  program  from  either 
Cassette  of  Disk,  3,  Move  the  Basic  program  that  Is 
In  Home  Bank  Memory  Into  Dock  Bank  Memory.  4.  Make 
the  necessary  POKES  to  the  first  8  bytes  of  Dock  Bank 
Memory,  5.  RUN  the  Basic  Program  that  is  In  the  Dock 
Bank.  Most    of    these    functional    steps    may  be 

accomplished  by  adding  some  short  utilities  to  the 
Basic  Program  after  It  Is  first  loaded  from  Cassette 
or  Disk, 

THE  UTILITIES 
Sources  and  Credits 
The  TS-2068  Technical  Manual, 
Mr.  Thomas  B.  Woods*  Non  Volatile  Ram  Manual 

PLANNING:  We  will  create  a  group  of  utilities 
to  ADD  to  ANY  BASIC  program.  After  the  uti llties  are 
added,  the  program  can  be  SAVED  with  a  starting  line 
number  of  9800,  When  the  program  Is  RE-LOADED,  a 
menu  will  appear.  The  menu  choices  will  allow  us  to 
elect  whether  to  MOVE  the  program  Into  DOCK  RAM,  or 
to  operate  the  program  In  the  HOME  BANK,  If  DOCK 
OPERATION  Is  elected,  the  added  uti I Ities  wl 1 1  be 
exercised,  but  if  HOME  Bank  Is  elected,  the  utilities 
will  be  Ignored.  We  may  add  this  programming  to  all 
of  our  BASIC  Softwares  and  utilities  to  have  the 
choice  of  HOME  or  DOCK  Bank  operation.  It  Is  assumed 
that  there  is  a  set  of  RAM  memory  chips  installed  and 
set  up  to  operate  in  the  Dock  Bank,  To  begin,  we 
LOAD  a  Basic  program  from  Cassette  or  disk  and  add 
the  following  program  lines. 

THE  MENU:  9800  INK  7:  BORDER  0:  PAPER  0:  CLS: 
PRINT  AT  10,4;"Y0UR  CHOICES  ARE:»'»TAB  4;"1,  Operate 
in  HOME  BANK" "TAB  4; "2,  Operate  In  DOCK  BANK":  INPUT 
A:   IF  A<1  OR  A>2  THEN  GO  TO  9800 

9802  IF  A=1  THEN  RUN:  REM**  You  may  replace  RUN 
with  a  GO  TO  the  program  starting  line, 

9804  CLEAR 

9999  RESTORE  9999:  FOR  X=23296  TO  23340:  READ  Y: 
POKE  X,Y:  NEXT  X:  RANDOMIZE  USR  23296:  DATA  175, 
6,2,33,83,92,94,35,86,213,33,89,92,16,247,225, 
209,237,82,68,77,235,175,211,244,126,245,62,240, 
21 1 ,244,241 , 119,11 ,35,229,33,0,0,237,66,225,32, 
234,201 


January  1988 

When  DOCK  is  elected,  the  above  routine  MOVES 
the  BASIC  Program  into  the  DOCK  RAM.  Next,  the  AROS 
Overhead  bytes  will  be  poked, 

9999  RESTORE  9999:  FOR  X=32768:  READ  Y:  POKE 
X,Y:  NEXT  X:  OUT  244,  BIN  00000000:  DATA 
1,2,8,128,15,0,0,0 

Now  SAVE  your  Basic  Program,  with  the  above 
additions  to  Cassette  or  disk.  You  may  add  the  same 
lines  to  your  other  Basic  programs  that  you  may  want 
to  use  In  the  dock  bank,  IMPORTANT:  The  basic 
program,  when  re-loaded  WILL  NOT  operate  in  Dock  Bank 
without  the  following  being  accomplished  FIRST, 

MOVE  PROG  F IRST 

MOVE  PROG:  Before  each  LOAD  of  a  Program  to 
operate  In  the  dock  bank,  PROG  must  be  moved  to  the 
starting  address  of  the  Dock  Program  lines,  which  is 
32776.  Otherwise,  the  CPU  will  look  for  the  normal 
starting  address  of  26710,  which  address  will  be  i n 
the  HOME  Bank  chunk  3.  Therefore,  the  operating 
procedure  must  be  to  FIRST,  MOVE  PROG,  THEN  LOAD  the 
Basic  Program  that  has  the  utilities  Installed.  Then 
the  program  Is  moved  Into  dock  bank  with  a  proper 
starting  address.  The  fol lowing  program  to  MOVE  PROG 
must  be  the  first  step. 


9999  RESTORE  9999:  For  X=23296  TO  23304:  READ  Y: 
POKE  X,Y:  NEXT  X:  RANDOMIZE  USR  23296:  DATA  33,85, 
104,1,178,23,195,187,18 


The  above  utility  should  be  entered  just  after 
the  computer  has  been  turned  ON,  ENTER  and  RUN  the 
program,  then  Delete  the  line.  DONT  type  NEW,  as 
that  would  RESET  PROG  to  26710.  Imediately  after 
running  the  above  utility,  and  Deleting  the  line,  go 
ahead  and  LOAD  your  Basic  program  that  has  the  new 
menu  and  MOVE  programming.  Elect  option  2  in  order 
to  move  the  basic  program  Into  the  dock  bank.  When 
the  utility  has  moved  the  program  into  dock,  you 
should  have  a  blank  screen. 

The  Situation 

If  you  have  been  following  through  so  far,  you 
now  have  your  Basic  program  in  the  Dock  Bank,  It  may 
or  it  may  not  operate,  depending  upon  several 
factors.  First,  there  are  no  variables  anywhere. 
Variables  are  not  stored  in  the  dock  bank,  and  we 
didn't  store  any  In  Home  bank.  Also,  we  didn't 
delete  the  program  from  home  bank,  so  It  will  still 
be  there.  And,  because  at  line  9999  we  did  an  <OUT 
244,  BIN  00000000>  we  are  now  operating  In  the  Home 
bank.  And,  because  at  9999,  we  POKED  32773,0,  the 
program  that  Is  In  Dock  does  not  Auto  Run,  So,  right 
now,  the  CPU  "sees  home  bank"  and  the  program  that  is 


4 


still  there.  So,  to  continue,  we  should  type  <DELETE 
1,  Ef^ER>  to  get  rid  of  the  home  bank  program. 

Next,  to  get  into  operation  In  the  dock  bank,  we 
need  to  <OUT  244,  BIN  IlllOOOO  and  <PCKE  23750, 128>. 
Then  <G0  TO  the  start  line  of  your  program>.  Try  it 
if  you  have  moved  a  program.  If  it  doesn't  operate 
right,  then  join  the  100$  club,  a  group  of  extra 
memory  users  who  ALL  had  their  first  Moved  program  to 
be  not  ful ly  functional.  Then  we  will  proceed  with 
some  more  learning.  But  maybe  It  worked  fine  and  you' 
dont  need  to  read  further?  If  so,  please  write  an 
article  for  UP-DATE! 

Continuing  for  the  new  member  of  the  100?  club: 
Dont  give  up!  Be  persistant!  Cuss  maybe,  but  dbnt 
quit!  The  rewards  will  come!  That  program  wasn 't 
important  anyway.  And  it  is  likely  to  be  hiding  in 
the  dock  bank  right  now.  You  cannot  see  it,  because 
you  cannot  LIST  a  Dock  program,  Thats  the  reason  why 
we  must  always  carefully  edit  and  fix  a  program 
before  putting  it  in  a  extra  memory  bank.  Some 
needed  to  know  facts  are:  You  can  LOAD  a  variable 
file  In  two  ways.  1.  A  program  line  In  the  dock  bank 
can  be:  <LOAD/"name"VAL>  or  other  disk  syntax  to  load 
a  vars  file.  2.  You  can  POKE  23750,0  to  get  into  the 
home  bank.  Then  vars  files  may  be  created  with 
program  lines,  or  LOADED  from  disk. 

A  third  way  of  creating  vars  is  to  do  It  In 
program  tines  in  the  dock  bank,  like  LET  A$=  "I 
really  dig  this".  Then  the  vars  so  created  will  be 
stored  In  the  home  bank.  You  see,  when  a  program 
line  Is  executing.  It  Is  IN  THE  HOME  BANK,  the  CPU 
"SEES  HOME  BANK",  and  variables  created  are  stored  In 
home  bank  RAM.  Next  we  wl  II  look  at  some  more  key 
memory  addresses  that  have  names.  ARSBUF  is  adresses 
23748  and  23749,  and  is  the  pointer  to  the  ARCS 
BUFFER.  ARSFLG  is  Address  23750,  and  is  the  pointer 
to  the  current  start  of  a  AROS  Data  Line,  Also  23750 
acts  as  a  switch  to  switch  operations  between  the 
HOME  BANK  and  the  Dock  bank.  POKE  23750,0  enables 
the  HOME  bank,  and  POKE  23750,128  enables  the  Dock 
Bank, 

Other  Key  addresses  are:  ADATLN  Is  Address  23751 
and  23752  and  Is  a  pointer  to  the  current  Start  line 
of  a  AROS  Data  Line.  ADATLENG  is  address  23753  and 
23754  which  stores  the  length  of  the  current  AROS 
DATA  LINE.  Of  that  group  you  will  get  the  most  use 
of  Address  23750,  the  switch  for  changing  banks. 
After  PCKE  23750,0  you  can  enter  program  lines  In  the 
home  bank,  or  LOAD  another  program  from  Disk  or 
Cassette.  While  experimenting  with  changing  between 
Home  and  Dock,  try  combinations  of  <POKE  23750,0:  OUT 
244,BIN  OOOOOOOO  and  <POKE  23750,128:  OUT  244,  BIN 
11110000>,    Keeping  notes  of  results  will  be  helpful. 

PROGRAMMING  LIMITATIONS:  There  are  some 
restrictions  on  commands  that  can  be  used  in  EXTRA 
memory  program  lines.  ON  ERR  GO  TO  cannot  be  used. 
But  to  skirt  around  this  a  ON  EWR  li ne  can  be  put  in 
the    home    bank,    and    "switched    to"  for  use  of  that 

8861  XjenuBp 


powerful  routine.  Example:  your  program  line  is  <100 
ON  ERR  GO  TO  500>  and  <500  ON  ERR  RESET:  do 
something:  GO  TO  102>,  Now  if  those  lines  were  in  a 
program  to  go  into  DOCK  Bank,  they  could  be 
re-arranged  as:  <100  POKE  23570,0:  OUT  244,  BIN 
00000000:  GO  TO  10>.  Now  that  would  enable  the  home 
bank  where  a  I Ine  of  programming  could  be:  <10  ON  ERR 
GO  TO  20>  and  <20  ON  ERR  RESET:  do  the  same  thing: 
POKE  23570,120:  OUT  244,  BIN  11110000:  GOTO  102>. 
Study  that  out  for  another  way  to  skin  the  cat. 

The  Oliger  SAFE  "Fast  FOR  Counter"  is  not 
acceptable  programming  in  Dock  Bank,  But,  you  can  do 
a  simlllar  switch  to  Home  Bank,  use  the  Fast  FOR 
counter,  and  when  finished,  switch  back  to  Dock  Bank 
and  continue.  Disk  Drive  LOADS  and  SAVES  of 
Character  arrays,  Vars  filc^,  and  Screens  work  fine  in 
Dock  program  lines,  but  Not  BASIC  Programs  that  use 
starting  line  numbers  or  machine  code  tables.  When 
you  are  using  Extra  memory,  PROG  Is  set  UP  to  Chunk 
4,  leaving  about  6K  of  address  spaces  vacant  In  chunk 
3  of  Home  bank.  Since  this  space  is  un-used,  it 
could  be  used  for  Machine  Language  programs  to  be 
executed  by  RANDOMIZE.  Also,  that  6K  is  subtracted 
from  FREE  for  Home  Bank  programs. 

Finally,  an  awful  lot  of  territory  has  been 
covered  In  this  article  to  get  from  ground  zero  to 
"somewhere".  We  have  just  scratched  the  surface  of 
Extra       Memory.  Many     facts    have    been  left 

out,espi cal I y  such  things  as  how  to  use  Machine  Code 
utilities  and  programs.  And,  we  have  covered  only 
the  Dock  Bank  of  extra  memory.  UP-Date  will  continue 
to  provide  as  much  useful  Information  as  can  be  dug 
up  about  Extra  Memory  prograrmiing  and  devices.  Both 
UP-DATE  and  the  subscr i bers  wi 1 1  appreciate  writer 
contributions  to  help  In  the  understanding  of  this 
broad  and  relatively  unexplored  subject,  8^"'^ 


January  1988 


Dock  Bank  Memory  for  Twenty  Cents 
Convert  a  TS-1000  Ram  Memory  For  the  TS-2068 

Many  TS-2068  users  graduated  from  the  TS-1000  and  sti  II  have  a  64K  Ram  for  that  classic  that  is 
collecting  dust  somewhere,  I  ask  Mr,  John  Oliger  to  give  us  information  about  converting  his  64K 
Ram  for  the  TS-1000  to  use  as  CXDCK  BANK  MEMORY.  He  complied  and  these  instructions  are  simple  and 
easy.  Other  TS-1000  memory  boards  may  be  converted  in  similiar  manner.  Why  dont  one  of  you  who 
have  done  it  to  a  Memotech  Memory  send  in  the  schematic  changes?  Given  here  is  the  Oliger  Schematic 
with  insets  showing  the  modification  details.  When  the  changes  are  made,  the  64K  memory  is  split 
into  two  32K  banks  addressed  32768  through  65535,  chunks  ^  through  7  of  the  TS-2068  memory  map.  The 
"Bank  A/B"  switch  selects  the  Bank  that  will  be  active.  The  data  that  is  placed  in  either  bank  will 
be  kept  refreshed  by  the  computer  when  the  computer  is  ON, 

The  "48-64K"  switch  is  used  to  TURN  ON  or  OFF  the  UPPER  16K  of  memory  of  the  bank  selected  by 
the  A/B  switch.  If  the  48-64K  switch  is  ON,  then  the  entire  32K  of  the  bank  selected  is  active  in 
the  dock  bank.  If  the  48-64K  switch  is  OFF,  then  only  the  LOWER  16K  of  the  bank  selected  (chunks  3 
and  4)  Is  active  In  the  dock  bank.  But  the  upper  16K  region  is  still  kept  refreshed  by  the 
computer.  This  allows  one  to  elect  programming  in  the  dock  bank  in  six  combinations  of  16  and  32K 
groups. 

John  Oliger  warns  that  no  one  should  consider  building  this  memory  board  from  scratch  because 
of  the  high  cost  of  the  4164  "pin  1  refresh"  chips.  But  if  one  is  already  on  hand,  the  cost  is 
about  20  cents  to  add  64K  of  Dock  Memory  to  your  TS-2068  (two  IK  resistors).  I  could  afford  twenty 
cents,  so  !  dude  it  and  it  works!  When  finished,  I  just  stuck  the  memory  board  in  the  empty  slot  of 
the  Oliger  Expansion  Port  and  started  programming  in  the  dock  bank.  Maybe  you  know  someone  who  has 
one  of  these  outstanding  64K  boards  and  can  trade  them  out  of  It?  Now,  programming  dont  just  jump 
into  that  new  Dock  Bank  Memory,  Thats  a  little  tricky  and  one  must  learn  how.  See  the  articles  in 
the  UP-Date  section  titled  "Extra  Memory".    A  check  list  of  the  modifications  is  given  below. 

Check  List  of  changes.    Refer  to  scehematic  on  next  page, 

1.  Cut  the  trace  to  pin  11  of  U-4  (LS-86),  OR  Remove  U-4  and  Bend  Pin  11  Outward. 

2.  Remove  12-16K  Switch. 

3.  Remove  8-12K  Switch. 

4.  Remove  R-2  27K  resistor  and  replace  it  with  a  IK  resistor, 

5.  Remove  Diodes  D-3  and  D-4,  OR  remove  U-5  (LS-138)  and  bend  pins  12  and  13  outward. 

6.  Remove  Diodes  D-9  and  D10  and  Resistor  R-4. 

7.  Remove  Diode  D-11. 

8.  Cut  trace  to  pin  3  of  U-4,  OR  Remove  U-4  and  bend  pin  3  outward. 

9.  Remove  U-5  (Ls-138)  and  bend  pin  15  outward.  Re-install, 

10.  Cut  the  trace  from  Bank  A/B  switch  that  connects  to  U-4  pin  10.    Cksnnect  that  side 
of  the  A/B  switch  to  Ground.    This  leaves  pin  10  of  U-4  connected  to  +5  Volts. 

11.  Cut  the  trace  from  ground  to  pin  5  of  U-5.    Jumper  the  Pin  5  trace  to  ROSCS, 

12.  Connect  a  new  IK  resistor  between  the  side  of  the  A/B  Switch  that  is  connected 
to  U-2  (LS-00)  pin  10,  to  +5  Volts. 


Programming 


January  1988 


HAWDY  REF-EREMCES  AND  A  SAFE-DOS  FTILE  IMDEXER 


Bob  Hariung,  2416  N.  Co.  Line,  Kuntertwn,  IN  46748 

When  Bill  Jones  asked  ise  to  contribute  soie  articles  for 
SDU  ny  first  impulse  was  to  reply  that  I  would  rather  just 
sit  on  the  sidelines  and  pick  the  brains  of  his  other 
writers  for  awhile.  Because  the  things  1  have  written 
since  the  days  of  SYNC  and  SYNTAX  have  been  simply  the 
sharing  of  ny  learning  experiences  with  T/S  conputers,  I 
felt  that  nost  SDU  readers  probably  would  have  advanced 
far  beyond  anything  I  night  be  able  to  offer.  Like  many 
T/S  users,  my  first  hands-on  experience  with  a  computer  of 
any  kind  started  with  an  unexpanded  2X80,  to  which  I  later 
added  the  8K  RON  and  the  notorious  RAN-pack,  moving  up  to 
the  2068  as  it  became  available,  and  most  recently  a  QL 
when  they  dropped  in  price  below  $100. 

(As  an  aside,  although  I  an  very  impressed  by  the  QL 
SuperBasic  as  a  quite  powerful  programming  language, 
especially  when  it  is  extended  by  Super  Toolkit  11,  1 
much  prefer  the  2068  Basic.  When  a  T/S  is  extended  by 
Beta  Basic  3.0  which  adds  over  100  new  or  enhanced 
commands  and  functions,  including  procedures,  to  a 
Spectrum-emulated  2068,  almost  all  of  the  more  significant 
progranoing  features  of  SuperBasic  other  than 
multi-tasking  are  made  available  but  with  much  easier 
key-in,  syntax-checking,  editing,  and  often  faster  pro- 
cessing. Most  of  these  new  BB  commands  and  functions  have 
2-10  optional  formats  to  further  extend  their 
capabilities.  For  anyone  interested  in  what  Beta  Basic 
does,  by  permission  of  BetaSoft  I  have  written  a  20K-byte 
demo  program  that  includes  an  uneditable  version  of  Beta 
Basic  to  actually  run  typical  listings  of  about  85  of 
these  BB  ccmands.  It  is  available  for  $5.00  to  cover  the 
cost  of  tape,  postage  and  handling.) 

After  carefully  reading  through  the  first  issue  of  SDU  and 
the  useful  tables  Bill  gave  us,  it  occurred  to  me  that 
another  one  which  night  be  included  is  a  list  of  some  of 
the  more  frequently  used  system  variables.  I  have  copies 
of  appendices  B  and  D  from  the  2068  manual  on  the  wall 
back  of  my  work  desk,  but  I  find  it  handy  to  have  these 
excerpts  (LISTING  I)  taped  to  the  right-hand  side  of  the 
computer  for  quick  reference.  If  the  list  is  covered  with 
clear  packaging  tape  and  attached  only  at  the  top  edge  it 
does  not  interfere  with  using  the  cartridge  port. 

DOSDEX~AN  AUTOMATIC  FILE  INDEXER 

The  OOSDEX  file  indexer  is  an  adapation  of  the  excellent 
menu  loader  written  by  Roe  1  of  Mulder  and  John  Oliger  and 
included  in  the  SAFE  DOS  documentation.  On  my  CPI  80-track 
drives,  one  DOSDEX  disk  can  hold  up  to  165  disk  catalogs, 
each  of  which  can  contain  up  to  165  individual  file 
titles,  or  27225  in  all.  These  are  displayed  in  the  same 
format  as  the  M/O  menuloader  and  are  sequentially  accessed 


by  keying  (CAPS  SHIR  L>  or  just  lower-case  <1>.  If  the 
appropriate  disk  is  inserted,  keying  (ENTER)  as  in  the 
menu  loader  will  load  the  title  selected  by  the  cursor. 

I  added  item  numbering  to  the  display  of  titles  and 
file-types,  without  using  the  fast  FOR/NEXT  loop,  so  the 
additional  processing  time  causes  the  display  of  nenu 
pages  to  be  noticably  slower.  (At  my  age,  more  is  passing 
me  by  than  I'm  catching  up  with  anyway!)  If  the  eighth 
byte  (14)  is  changed  to  an  8  and  the  listing  is  entered 
exactly  as  given  here,  the  machine  code  routine  from  your 
menu-loader  listing  may  be  poked  into  a  39-byte  first-line 
REM  instead  of  a  MARS  location  as  the  program  was 
originally  written.  No  other  variable  definitions  nay  be 
placed  between  CLEAR  and  DIM  c$  if  the  code  is  stored  in  a 
line  1  REM.  With  deletion  of  some  screen  effects  and  the 
line  10  q$  definition  this  allows  DOSDEX  to  be  placed  in 
file  0  with  SAFE  v2.32  or  later. 

Or  if  you  choose,  you  may  simply  adapt  your  original 
menu-loader  listing  with  the  required  changes  for  DOSDEX 
and  save  it  as  the  very  first  file.  It  will  not  fit  into 
file  0  but  you  can  use  it  along  with  the  nenu-loader 
routine  which  is  in  file  0.  Note  that  token-words  must  be 
used  as  much  as  possible  and  line  200  of  the  original 
nenu-loader  listing  must  be  moved  up  to  line  5.  In 
condensed  form  DOSDEX  will  just  fit  into  one  cylinder 
(5120  bytes)  when  expanded  with  catalog  data,  or  if  you 
prefer  to  retain  the  original  screen  format  each  index 
will  use  two  cylinders,  cutting  in  half  the  maximum 
possible  number  of  titles  stored. 

To  use  DOSDEX,  first  save  it  (or  the  nenu-loader)  to  track 
8  on  your  index  file  disk  with  (CLEAR)  (SAVE  /B).  Then 
make  a  save  of  DOSDEX  as  the  first  file  on  the  disk  with 
(SAWE  /  "DOSDEX"  LINE  2).  (This  is  necessary  in  order  to 
initiate  the  routine  if  the  shorter  form  of  DOSDEX  is  in 
file  0.)  For  convenience  in  identifying  your  file  disks, 
number  them  consecutively  with  a  felt  marker,  numbered 
labels,  or  white-out  as  8,1,2,3  .  .  .  beginning  with  your 
DOSDEX  disk.  Since  the  storing  of  the  respective  indices 
requires  alternately  obtaining  the  CATalog  data  from  each 
file  disk,  then  storing  it  on  the  DOSDEX  disk,  it's  a  good 
idea  to  have  write-protect  tabs  on  all  the  file  disks. 
(You  could  also  adapt  DOSDEX  to  a  2-drive  system  so  file 
catalogs  would  be  read  from  one  drive  and  saved  to  the 
DOSDEX  disk  on  the  other.)  The  sequence  for  indexing  on  a 
single-drive  system  is  this: 

Insert  the  DOSDEX  disk  (8)  and  key  (LOAD).  (Key  (ENTER)  to 
load  DOSDEX  if  it  is  stored  as  file  1.)  Remove  DOSDEX  disk 
and  insert  file  disk  1.  Key  (C)  to  CATalog  the  file  disk 
into  DOSDEX.  (If  you  have  keyed  in  (LET  /  P  =  0)  before 
loading  DOSDEX  and  have  your  printer  on,  a  hard  copy  of 
the  file  titles  will  also  be  printed  out  here  for  disk 


5 


Programming 


January  1988 


labeling  or  a  loose-leaf  binder.)  Renove  -file  disk  1  and 
insert  DOSDEX  disk.  Key  <S>  to  SAWE  as  index  M'.  Repeat 
with  file  disk  2,  and  so  on. 

To  read  the  DOSdex  files,  key  <LOAD>  with  disk  8  in  place. 
When  DOSDEX  is  loaded,  either  fron  file  0  or  fron  file  1, 
then  key  lower-case  <1>  or  <CAPS  SHIR  L>  to  LOAD  first 
set  of  titles.  Use  any  key  except  L  to  run  the  cursor 
through  the  page(5)  as  with  the  menu-loader,  or  key  either 
lower-case  or  upper-case  <L>  each  tine  you  want  to 
sequentially  load  each  of  the  file  indices  in  turn.  If  you 
want  to  update  only  one  particular  index,  reset  NEXT  H 
(disk  number)  by  keying  <N>  and  insert  the  corresponding 
disk.  Key  <C>  to  CAT  the  updated  info,  then  insert  the 
DOSDEX  disk  and  key  <S>  to  SAME  it. 

mm  REFERENCES 

DFILEl:  14384,6912 
KEY  REPEAT  STOPs  POKE  23561,0 
•      '    DELAY!  POKE  23561 ,n 
■      RATE!  POKE  23562, n 
CmRS  TABLE  [+2563!  23606-7 

(Noraal!  POKE  23607,60) 
KEYBEEP  LEN!  POKE  23609,n 
VARS  START!  PEEK  236274PEEK  23628*256 

(46  for  first  CHR*  byte) 
BASIC  start!  PEEK  236354PEEK  23636*256 

(+1  for  LSB  of  line  no.  or  +5  for 

first  character  byte  of  line  1  REM) 
LINE  0:  POKE  26711,0 
CALC  STACK!  PEEK  23651+PEEK  236521256 
CAPS  ON!  POKE  23658,8 

"  OFF!  POKE  23658,0 
TV  FRAMES!  23672-3-4 

TOP-LINE  SCROLL!  INPlfT     or  POKE  23692,-1 
LAST-LINE  SCROLL!  PRINT  AT  21,0  after  above 
UNUSED  SYSTEM  BYTES!  23728-9 
R^OPi  PEEK  237304PEEK  23731*256 
PRNT  DRIVER!  POKE  26703,LSB!  POKE  26704,MSB 
UDG  start!  65368  (168  bytes) 
JLO  SAFE  printer  connands! 
LET  /p=o 

OUT  127,27!  LPRINT 

Col/line:  POKE  23323,n  (defauU=25S) 

LF  after  CRj  POKE  23324,10  <0=no  LF) 
SCREEN  LPRINT  TO  PRINTER!  OP^  •2,'P' 

(Normal !  CLOSE  82) 
WARM  RESET!  RANDOMIZE  USR  0 


DOSDEX  LISTING 

1  RBI  123456789  MC  code  here  456789B 123456789 

2  CLEAR  !  DIM  zimi  ■178*,m  •28')!  LET  t=VAL  'IS'!  L 
ET  s^S6N  Pl!  LET  (fNOT  PI:  LET  iNs 

5  LH  a=VAL  "PEEK  236354PEEK  23636*25645* :  LET  c=INT  (a 
mi  •256')!  POKE  m  "23549" ,m  "195"!  POKE  VAL  "23559", 
a-(c*VAL  '256")!  POKE  VAL  •2355r,C!  LET  fi=USR  VAL  "23549 

LET  row=54s!  LET  col=VAL  ■9"!  LET  n*=c^(VAL  ■178',  TO  V 
AL  "16') 

28  LET  a^"!  DIM  f*(WL  "6"  ,545)!  LET  f^(s45)='  DATA  n" 
!  LET  mm  PI)="  DATA  $":  LET  f$(VAL  •4")='C0DE  "s  LET  f 

am.  ■5")=m    let  mm.  '6')=^  " 


308  CLS  !  IF  ni(LEN  n*)='  '  THEN  LEI  n^n*(  TO  LEN  ni-s)! 
60  TO  m.  "388" 

328  PRINT  AT  0,0;"  Diskl'|d-sj':  ' |ni;lo;'Key:  NEXT  CAT  S 
WE  LOAD  (l)l";d 

485  LET  f=5!  LET  c=INT  (fi/VAL  "18")!  LH  dif=lNT  ((fi/VA 
L  "18"-c)«WL  ■18"4WL  ".4"):  LET  loop=VAL  "17" 

418  LET  q*="p":  LET  it=s!  IF  loop)=fi  THEN  LET  loop=fi!  6 
0  TO  VAL  "425" 

415  FOR  i=s  TO  c:  FOR  nFO  TO  loop!  PRINT  AT  row4r6,t  ja*;AT 
row4ii,t-LB<  STR$  itjit;"  "jc^dt,  TO  t)|"  ';f$(CODE  c^(it 
,m  'ID+D:  LET  rt=it45!  NEXT  »!  60  SUB  VAL  •588"!  NEXT 
i:  FOR  1=545  TO  m.  '19":  PRINT  AT  i,t;a$!  NEXT  i!  IF  NOT 
dif  THEN  60  TO  WL  "418" 

425  IF  f  THEN  FOR  bfo  TO  dif-s:  PRINT  AT  row4ni,tja$|AT  ro 
w4ii,t-LEN  STRI  it;it;"  ";ci(it,  TO  t)}"  •}f$(CODE  c$(it,VA 
L  •ir)4l)!  LET  it=it4s:  HBH  mi  IF  loop>=fi  THB<  LET  f=o 

427  IF  NOT  f  THEN  LET  it=fi45 

438  60  SUB  VAL  "590":  GO  TO  VAL  "418" 

588  FOR  L=o  TO  n-s!  PRINT  AT  row4L,col-s-s|"  ';  IWERSE 
5}">':  IF  q«>""  THEN  FOR  aFS  TO  PItPl!  NEXT  as  LET  qil="" 

518  LET  a<=INKEY$!  IF  a1="  THEN  LET  q4="p"!  60  TO  VAL  "5 
18" 

528  IF  CODE  al=VftL  "13"  THEN  60  TO  VAL  "688" 

522  IF  a$="C"  THEN  OPEN  }»2,"P":  CAT  :  CLOSE  12:  60  TO  INT 

PI 

524  IF  a*='L"  OR  a$="r  THEN  LOAD  /STR*  d 
526  IF  a«="S"  im  LET  d=d45:  SAME  /STR$  (d-s)  LINE  t*t! 
60  TO  INT  PI 

528  IF  a^"N"  THEN  INPIJT  '  INPUT  NEXT  «"id!  60  TO  INT  PI 
538  PRINT  AT  pow4L,col-s-sj"    *:  NEXT  L:  LET  a4=" 
•1  RETURN 

688  CLS  :  LET  poy=it-B4L:  LET  d«=c$(pos,  TO  t):  LET  a=COD 
E  cl(po5,t45)!  IF  NOT  a  THEN  LOAD  /d* 
618  IF  a=s  THEN  LOAD  /d*  DATA  nO 
628  IF  a=545  THEN  LOAD  /dl  DATA  n*() 
638  IF  a=INT  PI  THEN  LOAD  /d«CODE 
648  IF  a=\^L  '4"  THEN  LOAD  /dIABS 
658  IF  a=^L  "S"  im  LOAD  /d$WL 


AUTHOR  PROFILE 

Mr.  Robert  D.  Hartung,  "Bob"  to  us,  holds  down 
two  positions  for  Dekalb  County,  I  I  Mnols.  Bob  I  s 
Chaplain  for  the  Sheriff  Department,  and  Is  a  member 
of  the  County  Child  Protection  Team.  Bob  also 
serves  as  Pastor  of  Church  of  God  Ministries  In  Fort 
Wayne,  IN.,  and  Is  the  Founder  of  "Turning  Point 
Services",  a  Ministerial  outreach  program  for 
troubled       youth.  Bob    prevtouly    served  with 

distinction  In  Pastorlal  work  In  England  and  Canada. 
His  hobbles  are;  helping  Youth  development,  fishing, 
antenna  design,  photography,  and  TS  Computing.  Many 
of  us  are  familiar  with  his  writings  In  SYNTAX, 
SYNC,  TS  Horizons,  Syncware  News,  Time  Designs,  and 
CTM  magazines.  Bob  Hartung  Is  hereby  appointed 
Chaplain  and  Spiritual  advisor  for  UP-DATE  and  the 
subscribers.    We  need  Bob  In  more  ways  than  one. 


6 


Programming 


January  1988 


jflLSSTKRIIilG  IHE  MAMAGBBEMf  OF  OaLABACIia  AHKAIS 


Wouldn't  it  be  nice  if  we  could  CAT  the  disk  directory,  and  with  X-RAI  eyes  see  the  data  that  is  in 
each  program!  But  all  we  can  see  is  the  titles  and  the  data  length  of  each  recording.  Ibo  bad  that  data 
can't  be  more  visable!  Probably  the  big^st  problem  of  using  conputers  is  the  need  to  plan  ahead  and 
organize  indexes  of  files  so  that  later  we  will  be  able  to  find  the  data  that  ws  need  to  use.  Last  issue, 
we  started  with  "SDOS  MAIL  MERGE",  a  software  that  creates  all  kinds  of  Listings  of  Data,  from  "mailing 
lists,  inventory  lists,  books  and  articles  lists,  to  the  daily  milk  producing  records  of  a  dairy  teid". 
These  lists  are  Saved  for  future  use  in  "Character  Armys". 

Ohe  lists  produced  by  SDCS  MAIL  MERGE  are  just  that,  "lists".  SDOS  ^feil  Merge  gives  yoi  a  "Sorted, 
pure  List",  and  provides  options  for  print  outs  in  several  famHts,  LAffiLS  be.ing  one  of  the  most  u^ful. 
Itovi  if  you  work  with  many  lists  of  thin^  or  people,  you  know  that  each  list  that  yai  produce  is  likely  to 
repeat  sonB  of  the  data  that  is  contair^  in  another  list.  If  you  print  a  lot  of  iiHiling  labels  using 
several  mailiiig  lists,  you  are  likely  sending  cut  duplicate  letters  to  the  same  persais.  It  takes  a  lot  of 
tine  to  cross  reference  several  mailing  lists,  then  more  tine  to  eliminate  the  duplicaticxis.  So,  we  have 
two   problems    to  solve,  one-  eliminate  duplications,  and  two-  "X-RAY  the  disk  files  to  see  their  contents". 

Ihe  Eata  ItatgeriBnt  Package  consists  of  SDOS  MIL  MERGE  and  iiie  two  Conpanicn  Programs,  "PURIIY"  and 
"LIST  LOOKER",  both  given  in  this  issue.  Itese  two  conpanion  programs  are  short  encugji  that  the  key-in 
preject  should  be  easy.  But,  as  usual,  the  two  programs  ;d-ll  be  included  in  the  January  .Issue  Diskette. 
"LIST  IiX)KIiE"  is  your  "X-RAY  E/es",  and  "PUIOTY"  is  your  program  to  PURIFY  all  of  your  varicus  listing 
against  each  otJrier  to  eliminate  duplicaticns  within  all  of  the  lists.  Each  of  these  programs  are 
independant,  and  designed  to  be  used  with  the  files  produced  by  SDOS  MAIL  MERGE.  Actually,  they  can  be  used 
to  purify  arxi  process  AIJY  Dinensicmd  ChBracter  Array  files,  v*iatever  the  source, 

PURITY  also  has  another  purpose.  Long  Ifeil  or  Inventory  Files  cannot  be  LOADED  to  a  Printing  software 
becau^  of  the  limited  amount  of  IHEE  nemory  of  the  host  program.  t^SCRIPr  and  SI^IART  TEXT  both  gives  us 
soneviiere  between  12K  and  17K  of  FREE  nemory  to  be  used  for  both  lEXT  and  imiLDJG  LISTS.  A  96  Ussrae  File, 
having  7  lir^s  of  31  Characters  each,  takes  up  2073)2  bytes,  and  cannot  be  loaded  to  ej.ther  program,  BUT,  if 
we  break  down  such  large  nailing  lists  to,  say,  12  nanES  par  list,  and  "process  the  grcups  autaintically", 
then  tiiere  is  sufficient  FREE  available  witii  almost  any  v/ord  processing  software.  Such  a  sdieiiE  wculd 
result  in  the  handling  of  mail  files  of  2604  bytes  each,  well  within  the  capacity  of  any  Word  Processing 
Software. 

I  wont  speak  for  MSCRIPT,  bat  Smart  Dsxt  can  take  40  such  files  of  12  nane  groups,  and  print  them  all 
without  hesitating,  as  Form  letters,  or  Labels,  or  as  just  print  outs  of  the  listings.  So,  "PURITY"  is 
desi^d  to  enhance  the  capabilities  of  all  Word  Processing  Softwares,  fcy  splitting  up  Lar^  Listings  so 
that  they  can  be  loaded  to  the  operating  programs.    Now  for  the  details. 


PIK IT Y 

At  ri^t  is  a  scr^n  copy  of  the  Purity 
Flinction  Menu.  This  menu  is  line  rumber  152  which 
is  the  starting  lir^  number  of  the  program.  As 
functions  are  acconplished,  this  neiii  is 
re^re^nted.  Ihe  PURITY  pregram  nay  be  SAVED  and 
re-loaded  with  data  aboard.  Or,  a  selection  of  <6> 
will  bring  pronpts  to  install  a  Data  Diskette,  then 
CAT  the  directory  and  praipt  for  irpit  of  "file 
naiiE".  Iten  a  file  is  loaded,  the  nenu  re-appears 
and  processing  can  begin.  Each  loaded,  file  is 
"purified"  with  itself,  eliminating  duplicates,  and 
eliminating  skips,  by  a  selection  of  <7>.  I'tei 
finished,  the  file  may  be  RE-SAVED  by  a  selection  of 
<1>  or  <3>. 


YOUR  CHOICES  ARE: 

1.  RE-SAVE  Ihis  FILE  (SAVE  OVER) 

2.  Break  into  12  Jfams  Files,  SAVE  to  PURITY  DISK 

3.  SAVE  this  Largp  File  Tb  PURITY  DISK 

4.  Ca^PARE  with  all  PURITY  FILES  for  DUPLICATES 

5.  FLIP  through  File  Nanes  on  Scr^n 

6.  LOAD  another  Largs  File 

7.  PURIFY  this  File 


1 


7 


Programml ng 


January  1988 


The  selecticn  of  <2>  will  result  in  the  lar^ 
file  being  brcten  up  into  grcxips  of  12  name  files 
and  each  file  SAVED  vdth  IN-SEQUENCE  runeric  file 
nanss,  "mxl  thirou^  mx100".  This  begins  the 
creation  of  your  "Purity  Disk".  For  exanple,  if  tha 
large  file  being  processed  is  a  file  of  95  name 
groups,  your  "purity  disk"  will  have  8  group  SAVES, 
and  their  titles  will  be  "nix1  throu^  mx8".  Tne 
"purity  files"  will  be  used  to  "purify  your  other 
lar^  gcoup  files",  lb  process  more  large  files, 
select  <6>  to  load  in  the  files  one  at  a  tine,  -then 
<7>,  then  <4>.  As  that  sequence  finistes,  the  large 
file  being  processed  has  been  conpared  with  the  8 
purity  files,  and  all  duplicates  eliminated.  Ihe 
large  file  is  now  PURE,  and  may  be  SAVED  as  a  large 
file. 

Now  that  we  have  the  second  lar^  file 
ixjrified,  it  may  also  be  sived  to  tte  purity  disk  by 
selecting  <2>.  Then,  the  "mx"  files  are  again  saved 
as  "12  naice  groups",  mx9  through  mxl6.  Ihere  will 
be  fewer  saves  of  mx  files  if  the  eliminaticn  of 
duplicate  nanes  resulted  in  fewer  name  files  in  the 
lar^  list.  As  more  files  are  loaded  in  and 
processed,  the  purity  file  grows,  and  as  it  ©rows 
the  number  of  conparisDns  with  the  next  lar^  file 
increa^s.  For  exanple,  if  we  purify  10  files  of  96 
names,  tiriere  could  be  as  many  as  80  rax  files  i^ved 
to  the  purity  disk  (no  duplicates  found),  or  40  mx 
files  if  half  of  the  names  were  duplicated  within 
the  files  being  processed. 

HPGKAMMDC 

This  is  a  program  of  Ifested  Counters  within 
Nested  counters.  Ihe  rumber  of  individual  counts  is 
astronomical.  lb  purify  just  one  96  narre  file 
against  itself  requires  46O8  conparisai  counts,  plus 
7  counts  for  each  duplicate  found,  plus  46O6  counts 
to  eliminate  interior  ^ips,  plus  7  caints  for  each 
skip  eliminated.  I  haven't  even  attenpted  to  sum  up 
tte  rioriiber  cf  counts  required  to  caipare  all  of  the 
fields  of  a  large  file  with  ii)e  mx  files  in  the 
purity  disk  (be  my  guest).  Oie  or  two  files  are 
processed  fairly  fast,  taking  only  about  two 
minutes.  As  the  purity  files  build,  the  tine  of 
processing  increases.  Ihis  is  an  ideal  BASIC 
program  to  assemble  with  TII4EiCHINE  to  greatly 
increa^  its  speed  of  operaticn. 

PURIIY  will  not  recogriize  such  repeats  as, 
"John  L.  SulliAan,  Mr.  John  L.  Sullivan,  and  J,  L. 
Sullivan".  While  using  MAIL  MERGEE  to  create  the 
files,  you  should  be  consistant  wit^i  the  farmt  for 
entering  names.  Conparisons  are  nade  with  the  FIRST 
I  .TOR  of  each  nanB  group,  the  "nama  line".    If  two 


Name  Lines  are  the  same,  then  the  whole  group  of  7 
lives  "of  the  large  file  being  processed"  are 
deleted.  The  files  in  the  Purity  Disk  are  never 
chan^d.  The  uenjs  are  arranged  so  that  prompts 
give  the  break  reeded  to  charii^  diskettes.  You  can 
use  PURirY  in  several  different  vays  to  prxx^ess  your 
listings.  'Ihe  pure  files  are  then  ready  to  print 
out  with  either  SDOS  MAIL  Ifer^,  LIST  LOOKER,  Smart 
Text,  or  any  software  that  can  handle  character 
array  listings. 

THE  PllIRITY  LLIST 

10  FOR  n=1  TO  3:  LOAD  /"mx"+STR$  n  DATA  k$():  FOR 
y=l  TO  12:  PRINT  n;"  ";y:  FOR  g=1  TO  4:  PRINT  k$(y,g 

):  NEXT  g:  NEXT  y:  NEXT  n 
20  STOP 

25  FOR  n=l  TO  96:  PRINT  n'o$(n,l):  NEXT  n 
30  STOP 

55  CLS  :  PRINT  AT  10,0 ; "  I  nsta I  I  your  Mail  File  Ois 
kette""  "Touch  ENTER":  PAUSE  4e4:  CLS 
60  LET  i=0:  LET  b= 1 :  LET  x=0 

65  LET  a=0:  BORDER  0:  PAPER  0:   INK  5:  CLS  :  CAT  : 
INPUT  "Input  Name  of  Array  to  L0AD";a$:  LOAD  /a$  DAT 
A  o$() 

66  GO  TO  152 

70  CLS  :  PRINT  AT  10,0;"Check  all  96  Names  and  DEL 
ETE      DUPLICATES  ";  FLASH  1;"Line  dO" 

60  FOR  n=l  TO  96:  IF  n>96  THEN  GO  TO  135:  REM  **F i 
eld  counter 

82  IFo$(n,l,1)="  "  THEN  NEXT  n:  GO  TO  135 
90  FOR  y=n+l  TO  96:  REM  **       comparison  counter 
100  IF  o$(n,l )=o$(y, 1  )  THEN  FOR  m= 1  TO  7:  LET  o$(y, 
m)="":  NEXT  m:  REM  **  Delete  dup-licate 
1  10  NEXT  y 
120  NEXT  n 

135  CLS  :  PRINT  AT  10,0 ; "E I i mi nate  skips  in  96  Name 
array";  FLASH  l;»Line  140" 
140  FOR  n=1  TO  96:   IF  n>96  THEN  GO  TO  152 
142  IF  o$(n,1,1)<>"  "  THEN  NEXT  n:  GO  TO  152 
14^4  FOR  y=n+1  TO  96:   IF  y>96  THEN  NEXT  n:  GO  TO  152 
146  IF  o${y,1,1)="  "  THEN  NEXT  y:  NEXT  n:  GO  TO  152 
148  FOR  g=1  TO  7:  LET  o$(n,g)=o$(y,g) :  NEXT  g:  FOR 
g=l  TO  7:  LET  o$(y,g)="":  NEXT  g 

150  NEXT  n 

151  CLS  :  PRINT  AT  0,O;"The  file  FLASH  l;a$;  FLA 
SH  0;"  is  now  Purified"   "It^t  OTZ  ^^AT  ^ 

152  CLS  :  PRINT  AT  2,0;"Your  Choices  are:"""<1>  Re 
-SAVE  this  file"'"        (SAVE  OVER  old  file"""<2>  Bre 
ak  into  groups  of  12  name  files  and  SAVE  to 
the          Purity  disk"""<3>  SAVE  this  whole  f i  le  to 
the         Purity  disk"''"<4>  Compare  with  ALL  Purity 

files  for  Repeats.  """<  5>  Flip  Through  File  N 
ame3"'"<6>  LOAD  another  File"'"<7>  Purify  this  File" 
'"<8>  Remove  Skips  Only":  INPUT  "Input  choice  ";z:  G 
0  TO  (2=8)*VAL  "140"+(z=7)*70+(z=l )*160+(z=2)*178+(z 
=3)*160+(2=4)*370+(z=5)*600+(2=6)*50+(z<l  OR  2>8)^15 


Programml ng 


January  1988 


160  CLS  :  PRINT  AT  10,0;"Split  the  96  name  array  in 
to  8  12  name  arrays  and  save  each  to  disk  FLASH 
l;"Line  170" 

170  CLS  :  PRINT  AT  10,0;"Thi5  is  a  PURE  FILE  SAVE. 

To      SAVE  OVER  EXISTING,  keep  same      dlsk."'"To  SAV 
E  on  PURITY  DISK,  Install  PURITY  DISK"" "ENTER  When 
READY":  PAUSE  4e4:  CLS 

172  INPUT  "INPUT  FILE  NAME  ";zi:  PRINT  "  FLASH  1;" 
SAVING  ";z$:  SAVE  /z$  DATA  o$():  GO  TO  152 

174  FOR  n=1  TO  100:  ON  ERR  GO  TO  176:  LOAD  /"mx"+ST 
R$  n  DATA  k$():  NEXT  n 

176  ON  ERR  RESET  :  LET  b=(n-l  AND  n>t)+(l  AND  n<2) 

178>LET  a=0:  REM  *  "a"counts  the  large  fields  in  in 
c-  rements  of  1.  "b"  numbers  the  disk  files  to  sav 
e. 

180  FOR  c=1  TO  96  STEP  12:  REM  *get  groups  of  12  na 
me  fields 
190  IF  c>96  THEN  STOP  :  GO  TO  340 
200  DIM  kS(12,7,31) 

210  FOR  y=l  TO  12:  REM  **  count  to  f I  I  I  a  12  name  f 
i le  array 

220  FOR  g=1  TO  7:  REM  **count    to  f i  1 1  7  lines 
230  IF  o$(c+a,l,l)="  "  THEN  LET  c=96:  LET  y=12:  LET 
g=7:  GO  TO  340:  REM  **  If  first  chr  is  aspace  then 
quit,  no  more  names  present 
240  LET  k${y,g)=o$(c+a,g):  IF  a=12  THEN  LET  a=0:  GO 
TO  300 
250  NEXr  g 

255  LET  a=a+l:   IF  a>12  THEN  NEXT  c 
260  NEXT  y 

300  CLS  :  LET  z$=STR$  b:  PRINT  ;AT  15,0;"Saving  ""m 
X";  FLASH  1;  INK  6;z$;  INK  5;  FLASH  0;"""";:  SAVE  /" 
mx"+STR$  b  DATA  k$():  LET  b=b+1:  LET  a=0:  NEXT  c 

310  NEXT  c  . 

330  CLS  :  BEEP  1,20:  PRINT  AT  10,0;"Fi le  name  ";a$; 
"  has  been  split"' "into  ";b-l;"  groups  named  ""mx";i 
+  ]•  "through  nix";b-l ;"""." ""ENTER  to  Continue,":  PAU 
SE  4e4:  CLS  :  GO  TO  350 

340  IF  k$(1,l,l)<>"  "  THEN  GO  TO  300 

342  LET  b=b-l :  60  TO  330 

350  CLS  :  PRINT  AT  10,10;"Your  Choices:"' 'TAB  4;"1. 

Qult"'»TAB  4;"2.  Load  Another  File":  INPUT  z:  IF  z= 
1  THEN  PRINT  "TAB  4;"lnstall  BASIC  Disk,  ENTER":  PA 
USE  4e4:  CAT  :  INPUT  "Input  Title  to  LOAD";a$:  LOAD 

/a$ 

360  CLS  :  PRINT  AT  10,0;"lnstall  Data  file  Diskette 
"""ENTER  When  READY":  PAUSE  4e4:  CLS  :  GO  TO  65 

370  CLS  :  PRINT  AT  10,0;"ivlow  purifying  against  the 
""rax""    files  in  Purity  Disk.""  FLASH  1;"  Install  Pu 
rity  Disk  and  ENTER":  PAUSE  4e4:  FOR  r=l  TO  200:  ON 
ERR  GO  TO  372:  LOAD  /"mx"+STR$  r  DATA  k$():  PRINT  AT 

15,0; "Checking  number  of  Files  ";  FLASH  l;"mx";r:  N 
EXT  r 

372  CLS  :  ON  ERR  RESET  :  LET  i=r-l :  FOR  r=l  TO  i :  P 
RINT  AT  10,0; "Processing  file  ";  FLASH  l;"mx";r;  FLA 
SH  0;"  to  Delete  Repeats  in  ";  FLASH  l;a$:  LOAD  /" 
mx"+STR$  r  DATA  k${) 


374  FOR  n=l  TO  12:  IF  n>12  THEN  GO  TO  388:  REM  »*Gr 
oup  counter 

376  FOR  y=l  TO  96:   IF  y>96  THEN  GO  TO  386 

378   IF  o${y,l,1)="  "  THEN  GO  TO  384 

332  IF  k$(n,l)=o$(y,1)  THEN  FOR  m=l  TO  7:  LET  o$(y, 
m)="":  NEXT  m:  REM  **  Delete  dup-licate 

384  NEXT  y 

386  NEXT  n 

388  NEXT  r 

396  LET  b=i+1:  GO  TO  135 

500  FOR  v,'=7  TO  12:  LOAD  /"mx"+STR$  w  DATA  k$():  FOR 
z=1  TO  12:  LPRINT  z;"  ";k$(z,1):  NEXT  z:  NEXT  w 
550  STOP 

600  FOR  w=l  TO  100:  ON  ERR  GO  TO  602:  PRINT  w;"  ";o 
$(w,1):  NEXT  w:  STOP 

602  ON  ERR  RESET  :  PRINT  FLASH  1:  PRINT  '"ENTER  WHE 
N  READY":  PAUSE  4e4:  CLS  :  GO  TO  152 


LET  LOOKER 

SDOS  MIL  LIST  Oa^PANION  Ito.  2 

Jtoll  files,  isile^txjae  listii^,  strode  listings, 
etc,  all  have  or^  thing  in  conraon.  After  the  second 
listing  is  tucked  away  in  diskette,  things 
degenerate  into  confusicn.  "Mios  on  first,  what  is 
in  centerfield,  and  why  is  the  pitcher".  Remsmber 
that  skit?  "LIST  LOOKER"  is  deceiving  by  its 
shDrtr^ss.  Ihis  utility  will  lock  at  any  LIST  FILE 
that  is  saved  as  a  Character  Array  of  thrse 
dinensions.  Exanple,  you  have  a  100  nane  array 
containing  "full  name,  Apartnent  rxnriber,  Street 
address,  City  and  State,  plus  other  data,  making 
each  a  7  line  field.  The  "dinensicn"  of  the  array 
would  be  A$(100,7,31),  "31"  being  the  number  of 
characters  per  line.  Its  kinda  hard  to  see  what  is 
in  a  file  just  looking  at  the  Disk  Directory,  isn't 
it? 

LEST  LOOKER  will  X-RAY  that  file  and  stow  you 
its  bones.  List  Looter  loads  in  from  disk,  a 

prcxipt  is  on  screen  giving  three  choices:  1 .  WAD  an 
Array,  2.  LPRINT  Listing,  3.  Screen  Print  Listing. 
When  <1>  is  elected,  you  are  pronpted  to  "Install 
Data  Disk",  then  a  touch  of  ENTER  gets  the  Disk 
Directory  WIIH  A  miWI  to  "mm  ARRAY  TITLE".  If 
you  are  like  ne,  your  diskettes  ae  kinda 
disorganized.  So  if  that  directory  doesn't  contain 
the  data  that  you  are  loddng  for,  just  HIEAK,  type 
GO  TO  5,  and  you  can  install  another  diskette  to  ^t 
its  directory  and  loading  proipt. 

The  data  arcs^  autcoatically  LOADS  after  input 
of  its  title.  Ihen  <3>  will  get  a  screen  print  out 
of,  each  of  the  groups,  numbered  from  1  to  the  end 
HLiniber.        Exanple,   if  there  are  50  nanes  and 


9 


Programming 


January  1988 


addrssaes,  each  will  screen  print  under  its  field 
riimber  so  that  you  can  identify  the  nanes  that  you 
my  be  interested  in.  Ihe  "3.  LPRIMT  LISTING"  lets 
you  get  a  ccaiplete  print  out  of  all  of  the  listing. 
'Ihis  tinB  however,  you  can  select  the  "rajraber  of 
Unas   to  print",  "TAB",  and  "S'ACES  BEIWEEN".  So, 

wtot  does  this  do  for  you?   IHINK!   You  got  it! 

You  can  print  print  LAEELS,  by  ir^jut  of  "4  Fields", 
2  spaces,  and  5  for  TAB.  Or,  you  can  irpat  7  lines 
anl  ^t  whole  groups  of  data  fields. 

Maybe  you  dant  know  how  wan^  naoes  and  how  many 
lines  per  name  the  array  has.  It  really  doesn't 
matter,  as  the  program  "sniffs  for  total  number  of 
fields",  then  tells  yai  that,  plus  the  number  of 
lii^s,  at  line  130.  Ihe  BiPUIS  then  governs  the 
print  fornat.  Ihis  is  a  excellent  "companion 
utility"  to  use  with  mailing  list  data  files 
^nerated  by  "SDOS  MAIL  I"!ERGE".  Also,  it  works  with 
"Ririty  Files".  "Ihe  three  programs  go  hand  in  glove 
to  give  you  conplete  processing  of  all  kinds  of 
Array  E&ta  Files. 

THEEROGRamnC 
TYbtb      are      several      significant  tips  of 

prDgranimLng  in  LEST  LOOKER.  Lets  take  them  line  by 
line.  Lire  5  (the  starting  line),  gives  the 
<LET/P=0>  to  initialize  the  Oli^r  SAFE  printer 
driver.  Other  Disk  Operating  systems  will  need  to 
have  a  different  program  statement  hare  to 
initialize  a  printer  driver.  Ihen  the  POKE  23324,10 
is  to  tell  the  system  to  give  a  LINE  FEED  with  each 
Carriage  Return.  If  your  printer  does  not  need  a 
LBE  FEED,  then  Omit  this.  Ihen  LINE  10  gives  the 
vay  to  CAT  the  Disk  Directory,  and  put  a  prompt  on 
the  screen  directory.  After  the  proopt,  the  Array 
Title  is  LOADED  by  LOAD/A$DArA  Z$(). 

LEE  SO  is  executed  to  LOOK  AT  the  ARRAY  and 
find  its  DIr'IE^JSIONs.  Ttie  "Z  Counter"  uses  a  (M  EHR 
to  trip  when  the  Number  of  M:e  fields  have  been 
counted.  Ihe  "G  Counter"  dc»s  the  sane  for  the 
Number  of  Lims".  Ihen  Vars  Z  and  D  are  ussd  for 
counter  limits  in  the  LPRING  routine  at  line  20  and 
the  Scr^n  Print  routire  at  lire  60.  This  program 
is  short  enou^  to  really  bite  into  and  discover  all 
of  its  tridcs.   Have  fun  doing  it! 


LEST  UXXSRt  ite  LUST 

5  LET  /P=0:  POKE  23324,10:  BORDER  0:  PAPER  0:  INK 
6:  CLS  :  GO  SUB  138:  PRINT  AT  10, 10;"0PTI0NS""TAB 
4;'M.  LOAD  ARRAY""TAB  4;"2.  LPRINT  Listing""TAB  4; 
"3.  Screen  Print  Listing":   INPUT  "Input  Your  Choice? 
";a:   IF  a<l  OR  a>3  THEN  GO  TO  5 
7  GO  TO  (a=l  )*10+(a>l  )*90 
10  CLS  :  PRINT  AT  10, 4;" install  Data  Disk,  ENTER": 
PAUSE  4E4:  CAT  :   INPUT  "Input  CHR  ARRY  TITLE";A$:  L 
GAD  /A$  DATA  Z$():  GO  TO  5 


20  CLS  :  FOR  N=Z1  TO  12:  ON  ERR  GO  TO  40:    IF  Z$(N, 
))(!)="  "  THEN  STOP 
25  IF  C>4  THEN  LPRINT  TAB  T8;n 

30  FOR  Y=1  TO  C:  LPRINT  TAB  10;Z$(N,Y):  NEXT  Y:  FO 
R  M=1  TO  SX:  LPRINT  :  NEXT  m 

35  IF  tw=l  THEN  FOR  Y=1  TO  C:  LPRINT  TAB  10;N$(Y): 
NEXT  Y:  FOR  M=l  TO  SX:  LPRINT  :  NEXT  m 

38  NEXT  n 

40  ON  ERR  RESET  :  GO  TO  5 

60  CLS  :  FOR  N=1  TO  Z:  ON  ERR  GO  TO  80:  IF  Z$(N, 1 ) 
="  "  THEN  STOP 

70  PRINT  n:  FOR  Y=1  TO  D:  PRINT  Z$(N,Y):  NEXT  Y:  P 
RINT  :  NEXT  H 

80  ON  ERR  RESET  :  PRINT  ""ENTER  WHEN  READY":  PAUS 
E  4E4:  GO  TO  5 

90  FOR  Z=l  TO  200:  ON  ERR  GO  TO  100:  LET  C=LEN  Z$( 
Z,1):   IF  Z$(Z,1)(1)="  "  THEN  STOP 

95  NEXT  Z 

too  ON  ERR  RESET  :  LET  Z=Z-1 :  FOR  G=l  TO  100:  ON  ER 
R  GO  TO  110:  LET  C=LEN  Z$(1,G):  NEXT  g 
no  ON  ERR  RESET  :  LET  D=G-1 
120  IF  a=3  THEN  GO  TO  60 

130  CLS  :  PRINT  AT  10,0;"The  Array  has  ";D;"  Fields 
.""AT  12,0;"lnput  Nbr  of  Fields  to  Print.  """(  4  f 
or  Labels  )":  INPUT  C:  CLS  :   INPUT  "Input  Start  Nbr. 
";Z1:  INPUT  "Input  END  Nbr.  ";Z2:   INPUT  "Input  TAB: 
";TB:  INPUT  "Input  Spaces  Between:  ";SX 
132  CLS  :   IF  c<5  THEN  INPUT  "Twin  Labels?  <1 >  Yes- 
<2>  No  ";TW 
136  CLS  :  GO  TO  20 

138  DIM  n$<4,31):  LET  n$( 1 )="TS-2068  UP-DAJE" :  LET 
n$(2)="1317  Stratford  Ave.":  LET  n$ (3) ="Pan|ma  City, 
FL  32404":^  RETURN   II  


10 


Programming 

-  OR  - 

Adapting  Software  to  Printers 

The       article    about    printer    control     In  the 

October  issue  brought  forth  enough  response  to 
indicate  that  a  more  comprehensive  reference  should 
be  attempted.  Apparently  many  users  are  having 
problems  In  this  area.  One  nice  Lady  wrote  her 
thanks,  and  several  Gents  wanted  more  Information, 
But  John  Ollger  wrote  and  pointed  out  a  couple  of 
mistakes.  These  will  be  corrected  in  the  text  of 
the  f ol lowl ng. 

Why  doesn't  software  writers  include  enough 
programming  to  make  the  software  print  "right  out  of 
the  box"  with  ALL  TYPES  of  printers?  Well,  that 
would  be  nice,  but  would  likely  require  about  38K  of 
programming,  and  our  TS-2068  has  only  38K  of  FREE 
memory  to  start  with.  So,  usually  a  software  Is 
designed  to  print  with  a  type  of  printer  that  Is 
"compatable  with"  several  brands,  and  instructions 
given  to  make  program  line  changes  to  adapt  to  other 
printers.  There  are  several  DOT  MATRIX  printer 
brands  that  use  the  "EPSON  STANDARD",  which  usually 
means  tnat  the  printer  maker  copied  the  Epson 
"Control  Codes".  Two  "Standards"  widely  used  with 
Daisy  Wheel  printers  are  "QUEME  Compatable"  and 
"DIABLO  Compatable". 

In  order  for  a  computer  to  communicate  with  a 
printer,  both  devices  must  understand  a  common 
language.  That  common  language  is  called  ASCII 
(American  Standard  Code  for  Informaton  Interchange), 
Page  number  239  of  the  TS-2068  User  manual  gives  the 
ASCII  Codes  and  calls  them  "The  Character  Set". 
Actually  there  are  more  codes  in  ASCII  than  the 
TS-2063  uses,  and  a  few  of  the  codes  in  the  TS-2068 
CHR  SET  are  not  standard  ASCII,  but  for  printer 
control,  the  codes  In  the  User  Manual  will  suffice. 
So,  we  have  the  "common  language",  which  is 
ASCII,  The  computer  understands  It  and  so  does  the 
printer.  Now  there  are  two  jobs  that  the  printer 
must  do.  One  is  to  PRINT  CHARACTERS,  and  the  other 
is  to  SWITCH  Its  own  modes  of  printing.  To  PRINT 
characters  the  printer  must  be  able  to  receive  and 
to  respond  rapidly  to  "streams  of  characters"  sent 
by  the  computer.  The  charcters  are  processed  by  a 
"printer  driver",  a  machine  language  software  that 
is  supplied  by  the  manufacturer  of  the  "PRINTER 
INTERFACE".  Since  the  TS-2068  contains  only  a 
printer  driver  for  the  little  TS-2040  printer,  ALL 
interfaces  for  large  printers  are  supplied  by  our 
Cottage  industries.  Some  of  these  are  "Serial 
Interfaces",  but  most  arc  CENTRONICS  PARALLEL 
i  nterf aces. 

Wo    will  delay  the  discusslovof  Serial  (RS-232) 


January  1988 

interfaces  until  the  next  Issue  of  UP-DATE.  For 
this  discussion  we  will  deal  only  with  CENTRONICS 
PARALLEL  Interfaces,  and  only  with  the  OLIGER  and 
AERCO  Interfaces,  These  two  "CP  I "  devices  have 
become  the  dominant  ones  for  the  TS-2063,  the  most 
simple  to  use,  and  they  use  a  minimal  amount  of 
computer  memory  for  their  printer  driver  code.  In 
fact,  the  Disk  Drive  controller  hardware  contains 
the  printer  driver  code  in  its  EPROH,  thus  using  no 
computer  memory  at  all.  These  interfaces  provide 
the  electronics  circuitry  to  process  character 
streams  and  coded  directions  to  a  printer  and  to 
RECEIVE  the  "Interrupt  signals"  from  the  printer. 

The  software  "driver  code"  is  an  extension  of 
the  TS-2068  ROM,  which  lacks  the  "built  In 
instructions"  necessary  to  send  data  and  commands  to 
the  printer.  While  the  Oliger  and  AercoCPI 
Interfaces  are  different  in  circuitry,  the  driver 
codes  supplied  with  each  can  be  used  with  the  other 
Interface,  Now  lets  get  to  the  two  functions  of 
these  CP  I  interfaces.  One  function,  and  the  most 
complicated.  Is  the  processing  of  Character  streams 
to  the  printer.  Actually  this  is  the  most  simple  to 
use,  <LPRINT>  does  it!  You  dont  see  the  many 
complicated  functions  that  take  place,  and  you  dont 
have  to  worry  about  It. 

The  other  CPI  function  Is  to  "Process  Control 
Codes  to  the  Printer",  to  make  It  do  such  things  as 
Change  from  Elite  Style  to  Pica  Style,  Roll  up  a 
Page,  or  the  other  mechanical  functions  that  the 
printer  does.  The  Interface  uses  "OUT  PORT  127"  as 
the  communications  path  to  the  printer,  and  the  path 
back  from  the  printer  for  "Interrupts",  So,  the 
"ASCII  COMMAND"  that  a  printer  needs  to  do  a  desired 
function  is  sent  "OUT  through  PORT  127",  A  typical 
direct  command  to  click  up  a  i i ne  space  is  <OUT 
127, 10>,  "10  decimal"  is  the  industry  standard 
ASCII  CODE  for  printers  to  perform  a  LINE  FEED, 
There  are  32  "single  character  codes",  0  through  31, 
In  the  TS-2068  Character  set  that  can  be  "sent  out" 
In  this  manner. 

Actually  there  are  255  character  codes  that  can 
be  sent  out  to  the  printer,  but  only  32  can  be  sent 
out  "without  a  character  being  printed".  All  of  the 
other  223  codes  will  cause  something  to  be  printed. 
Example,  <OUT  127, 65>  will  result  in  the  character 
"A"  being  printed.  This  is  because  ASCII  CODE  65  is 
assigned  to  the  character  "A",  and  the  interface 
processes  data  characters  to  be  printed.  Some 
printers  use  as  many  as  80  ASCII  CODES  to  perform 
internal  changes.  For  example,  a  Diablo  Daisy  Wheel 
printer  uses  ASCII  CODE  79  to  "SET  BOLD  PRINT",  BUT 
<OUT  127, 79>  PRINTS  a  "0"!  The  solution  to  "sending 
printable  ASCII  CODES"  to  the  printer  is  to  first 
send  the  "ESC  COMMAND". 

The  "ESC"  code  is  "27",  So,  using  the  aoove 
example,  <OUT  127, 27>  then  <OUT  127, 65>  will  command 


II 


Programml ng 


January  1988 


the  Diabio  printer  to  SET  BOLD  PRINT.  The  ESC  cods 
(27)  tells  the  printer  to  "Expect  a  CONTROL  CODE 
NEXT".  Printer  manuals  vary  as  to  how  their  CONTROL 
CODES  are  given.  Most  manuals  have  a  table  of 
control  codes  with  numbers  given  in  both  HEXADECIMAL 
and  DECIMAL.  A  typical  such  expression  would  be 
given  in  brackets  as  (1B,4D)H  (27,77)0.  The  first 
group  is  given  in  Hex  and  the  second  group  in 
Decimal,  In  this  case,  our  TS-2068  command  would  be 
<OUT  127, 27>  <OUT  127, 77>.  Another  way  that  the 
SAME  command  group  could  be  presented  is  <E5C  M>. 
"ESC=27  and  the  Character  Code  of  "M"  is  77". 

Still  another  way  given  in  some  printer  manuals 
is  <LPRINT  CHR$(27)+M>,  which  isn't  the  correct  way 
of  sending  such  codes  with  the  TS-2068,  but  can  be 
intrepeted  as  OUT  127,27:0UT  127,77.  So,  with  all 
of  these  different  ways  of  saying  the  same  thing, 
it's  no  wonder  that  printer  manuals  are  confusing! 
Incidentally,  that  ONE  command  group  is  used  by 
Epson  printers  to  SET  ELITE  PRINT  MODE.  Command 
codes  to  perform  a  single  function  may  be  as  many  as 
six  codes  chained  together.  Example:  (27,120,1)0 
(155,120,1)0.  The  "D"  for  Decimal  may  or  may  not  be 
present.  That  command  group  SETS  HI  QUALITY  MODE 
for  Epson  printers.  The  command  for  the  Aerco  and 
Oliger  CPI  would  be  <0UT  127,27:  OUT  127,120:  OUT 
127,1:  OUT  127,155:  OUT  127,120:  OUT  127, 1>,  quite  a 
long  group  of  OUTs  to  do  just  one  switching 
function  I 

Now  its  gonna  get  longer,  because  that  group  of 
six  OUT  commands  execute  in  about  100  milliseconds, 
and  the  printer  requires  much  more  time  than  that  to 
respond  to  SWITCHING  commands.  For  Software 
programming  lines  to  Command  the  printer,  we  must 
have  a  "CHECK  OF  THE  PRINTER  STATUS"  routine  TO  SEE 
IF  THE  PRINTER  IS  BUSY  before  sending  a  control 
code.  When  the  printer  is  busy  it  places  a 
interrupt  signal  on  IN  PORT  127.  If  the  printer  is 
busy  then  the  software  must  wait  until  the  printer 
is  READY  before  sending  the  control  code.  The 
correct  way  to  do  this  with  the  Oliger  CPI  is  to  use 
the  loop  given  in  the  interface  manual,  which  is 
<100  IF  INKEY$  #3="B"  THEN  GO  TO  100>  <102  KtTURN>. 
Then  a  control  code  group  such  as  (27,45)  would  be 
programmed  in  a  line  as:  <50  GO  SUB  100:  OUT  127,27: 
GO  SUB  100:  OUT  127, 45>.  The  line  100  will  loop 
itself  until  the  printer  is  READY,  then  the  line  100 
IF  condition  will  be  FALSE  and  the  RETURN  will  allow 
the  next  OUT  command  to  execute. 

The  above  "INKEYS  #3"  polls  the  IN  PORT  127  for 
the  bits  used  by  printers  to  signal  its  status  to 
the  computer.  But,  this  procedure  requires  a 
interface  driver  that  processes  the  INKEY  #3  syntax. 
If  you  use  another  type  of  interface  you  should 
check  its  manual  for  a  PRINTER  STATUS  CHECK  routine. 
The  use  of  INKEYS  #3  returns  a  "Improper  I/O  device" 
report  when  used  with  some  other  interfaces.     If  you 


get  such  a  report  code  you  can  turn  OFF  the  printer 
and  type  <PRINT  IN  127>.  Then  use  that  number  in 
the  status  check  routine.  My  system  produces  253 
when  the  printer  is  BUSY.  Mr.  Oliger  tells  me  tnat 
all  bits  of  IN  PORT  127  are  not  not  controlled  the 
same  with  all  models  of  the  TS-2068.  His  words  are 
quoted:  "A  program  loop  such  as  the  example  given 
(100  IF  IN  127=253  THEN  GOTO  100)  (102  RETURN) 
should  not  be  used  and  this  is  not  how  the  printer 
interface  manual  instructs  this  to  be  done.  This  is 
the  kind  of  thing  that  works  with  one  computer  but 
not  on  another,  because  all  of  the  bits  on  IN  PORT 
127d  are  not  used,  and  thus  are  floating.  The 
function  INKEY$  If  i  should  be  used  for  this  purpose 
as  detailed  on  page  6  of  the  Oliger  Interface 
manual 

Pardon  me  for  digressing  into  the  complicated. 
This  is  supposed  to  be  a  SIMPLE  treats ie  about  how 
to  clear  the  fog  in  printer  manuals  and  CONTROL  your 
printer  with  program  lines.  Wo  will  get  back  to 
that.  Other  interfaces  such  as  TASMAN  and  A&J  use 
LPRINT  CHR$  instead  of  OUT  12  7.  Many  printer 
manuals  express  their  EXANFLE  commands  in  this 
manner,  LPRINT  CHRS  27,  as  the  ESC  command,  instead 
of  OUT  127,27.  Thats  alright  if  you  know  how  to 
intrepet  such  red  herrings.  The  Oliger  and  Aerco 
interfaces  just  wont  work  with  LPRINT  CHR$,  and  must 
have  OUT  127, number. 

To  sum  up:  When  ESC  is  given,  it  means  OUT 
127,27.  When  a  letter  character  is  given  as  a 
command  code,  look  up  the  ASCII  code  for  the  letter 
on  page  239  of  the  TS-2068  User  Manual  and  use  the 
CODE  number  as  the  command.  When  constructing 
program  lines  to  Command  the  Printer,  each  OUT  127 
should  be  preceeded  with  <G0  SUB>  to  the  "STATUS 
CHECK"  routine,  which  for  the  Oliger  and  Aerco  CPI 
is  <100  IF  INKEYS  #3="B"  THEN  GO  TO  100>  then  a 
following  line  <102  RETURN>,  The  line  numbers  can 
be  of  your  choosing.  There  Is  no  limit  as  to  the 
number  of  "chained  commands"  that  can  be  in  one 
program  line.  Many  printers  require  as  many  as  six 
chained  commands  to  perform  one  function  change  of 
the  printer. 

You  cannot  use  HEXIDECIMAL  numbers  in  your  OUT 
127  command,  HEX  numbers  must  be  converted  to 
decimal,  if  not  given  in  the  printer  manual.  Page 
239  of  the  TS-2068  User  manual  gives  the  codes  in 
both  Hex  and  Decimal.  Printer  control  sequences 
given  in  a  printer  manual,  such  as:  (ESC  *  0  2)  must 
be  intrepeted  by  looking  up  the  codes  for  "*"  (42), 
for  "0"  (79),  for  "2",  (50).  We  know  that  ESC  is 
27.  So,  the  chained  commands  would  be  entered  in  a 
program  line  as  follows:  <500  GO  SUB  100:  OUT 
127,42:  GO  SUB  100:  OUT  127,79:  GO  SUB  100:  OUT 
127,50:  RETURN  >.  GO  SUB  100  would  be  to  the  INKEYS 
#3  routine  to  check  the  printer  status. 

Your    printer    and  the  software  can  both  be  OK, 


Programming 


January  1988 


but  all  you  get  is  partial  lines  of  print  that 
lap  over  onto  tlie  next  line,  because  of  improper 
printer  switch  settings.  Most  softwares  completely 
control  the  printer  and  require  that  no  MARGINS  be 
set  at  the  printer,  the  auto  PAGE  ADVANCE  be  turned 
OFF,  the  printer  LINE  JUSTIFICATION  be  turned  OFF, 
the  PORPORTIONAL  PRINT  PRINT  SPACING  be  turned  OFF, 
and  for  letter  size  pages,  the  LINES  PER  PAGE 
setting  at  the  printer  should  be  60  lines  per  page. 
Then  the  software  and  the  printer  wont  be  fighting 
each  other  to  control  margins,  character  spacing, 
and  page  length.  Let  the  software  do  the 
controlling,  and  let  the  printer  be  DUMB,  just 
responding  to  "Simon  Sez"  commands  given  by  the 
software. 

The  printer  switch  that  sets  a  LINE  FEED  with 
each  CARRIAGE  RETURN  should  be  ON,  Then  a  line  feed 
will  occur  each  time  a  line  is  printed.  A  Carriage 
Return  command  is  sent  by  the  sotware  each  time  a 
line  has  printed,  or  the  "partial  last  line"  of  a 
paragraph,  f>low  this  Just  about  sums  up  "everything 
that  anyone  wi  II  ever  need  to  know  about  Commanding 
printers  with  the  Oliger  and  Aerco  CP  Interfaces", 
Next  issue  we  will  discuss  a  RS-232  Serial 
Interface.  In  the  meantime  perhaps  someone  would 
like  to  sond  In  a  treats ie  about  "printer  commanding 
with  the  TASMAN  CPI.  Permission  Is  hereby  given  for 
TSUG  Clubs  to  make  re-prints  of  this  article  or 
excerpts  thereof, 

FlRMCriOL  mSES  OF  SCWEBHI  FOILES 

-  AND  - 

DISK  DEPENDANT  PROGRAMMING 

if    I    had    to  complain  about  something  i  would 

gripe  about  the  6912  bytes  of  disk  space  that  is 
required  to  SAVE  a  Screen  File.  A  whole  screen, 
when  full,  contains  22  X  32=  704  characters.  Of 
course  there  is  much  more  to  a  displayed  screen  than 
just  the  places  reserved  for  characters  to  be 
printed,  but  6912  bytes?  A  program  line  that 
constructs  a  screen  takes  up  quite  a  lot  of  our 
precious  FREE  Memory.  The  more  a  software  can  do, 
the  more  MENUS  and  screen  displays  are  needed. 
Usually  a  well  designed  screen  will  cost  about 
600-1000  bytes  of  FREE  MB^ORY.  A  software  that  has 
a  lot  of  functions  may  need  as  many  as  a  dozen  such 
Menu  and  Information  Screens,  Ttie  FREE  Memory  used 
for  a  dozen  such  screens  would  be  between  6  and  12K 
bytes.  Look  at  FREE  memory  in  another  way,  A  full 
page  of  printed  data  is  usually  about  3000 
Characters.  So,  12  screens  within  the  softv/are 
programming  costs  us  the  memory  capacity  of  about  2 
to  4  full  pages  of  data. 

Is    It    economical    to    spend  6912  bytes,  times 


12=82944  bytes  of  disk  space  to  save  12  screens  and 
"boot  the  screens  in  when  needed  in  a  program"?  You 
bet  it  is!!  And,  the  SCREENS  LOAD  and  SAVE  is  one 
of  the  most  useful  functions  of  a  Disk  Drive.  The 
programming  (SAFE)  <1000  LOAD  /"1"SCREEN$>  (AERCO) 
<CAT  "1,SCR",>  is  all  that  Is  needed  to  bring  aboard 
a  screen  menu  that  would  take  up  1000  bytes  of  FREE 
Memory,  12  such  lines  of  programming  costs  only  132 
bytes  of  FREE  memory.  We  have  a  million  K  of  disk 
space  to  waste,  but  every  byte  of  FREE  memory  is 
like  the  last  lick  of  a  ice  cream  cone.  How  sweet 
it  is!  And  who  cares  about  a  6912  byte  chunk  of 
DISK        Space?  I     rememember    once    testing  the 

practicality  of  booting  screens  from  Cassette, 
While  the  screen  was  loading  in  the  grass  on  the 
lawn  grew  enough  that  it  needed  mowing!  And  I 
watched  as  a  Cardinal  built  a  nest,  layed  her  eggs 
and  the  young  birds  learned  to  fly!  All  while  that 
screen  was  loading  from  cassette.  Well,  maybe  thats 
stretching  it  a  bit.  Anyway,  <L0AD  /"1"SCREEN$> 
pops  a  menu  on  screen  in  2  and  one  half  seconds 
flat!     Thats  FAST  and  efficient! 

The  "doing  it"  is  too  easy  to  talk  about.  You 
just  program  your  screen  In  the  normal  way  with 
PRINT  AT  statements  in  a  line  of  programming.  But 
now  you  can  let  It  all  hang  out  and  create  a  real 
beautiful  screen  with  color  changes,  full  words 
Instead  of  abbreviations,  and  put  nice  borders 
around  it.  When  finished  and  the  screen  is  really 
beautiful,  just  BREAK,  and  type  <SAVE/" 1"SCREEN$>. 
Next  DELETE  the  program  line,  and  re-enter  the  same 
line  with  1000  LOAD  /"I "SCREEN J.  Do  this  as  many 
times  as  you  have  Menus  and  Display  screens  in  the 
software.  When  finished,  your  program  will  have 
more  meaningful  menus  and  you'll  have  saved  enough 
FREE  memory  to  add  many  more  functions  to  the 
program. 

Now  what  we  have  just  done  Is  to  create  a  "Disk 
Dependant"  software.  It  wont  work  without  the  disk 
drive.  You  are  sacrificing  a  good  bit  of  disk  space 
to  conserve  Computer  FREE  Memory.  Later  we  will  use 
disk  space  to  store  "Segments  of  the  Software 
itself",  and  MERGE  these  segments  to  the  main 
program  in  memory  as  the  program  routines  are 
needed.  For  example,  suppose  that  you  have  a 
software  that  has  a  Data  Base  Manager,  a  Word 
Processor,  a  Mai  I  Merge,  You  have  used  a  lot  of 
programming  for  these  three  comprehensive  functions, 
and  have  thus  sacrificed  FREE  memory  for  DATA 
STORAGE.  While  you  are  using  the  Data  Base  Manager, 
you  really  do  not  need  the  Word  Processor  nor  the 
fjlail  Merge  to  be  on  board. 

So,  when  the  SAFE  Merge  function  is 
implemented,  we  can  have  our  cake  and  eat  it  too. 
Software  programs  can  be  segmented  so  that  only  the 
major  function  that  we  need  will  be  in  memory.  The 
other    major    functions  will  be  on  stand-by  in  disk^ 


TIMEX  CLUBS  OF  NORTH  AMERICA 


TS-2068  SUPPLIERS 


Fol I  owl ng  Is  a  I i  st  of  Ti  mex  CI ubs  of 
North  America,  A  few  may  be  missing  and 
will  be  published  as  Information  Is 
received.  Some  of  these  clubs  publish 
excellent  newsletters  that  are  worthy  of 
subscribing  to.  For  those  clubs  that  may 
be  Interested,  Up-Date  Is  willing  to 
publish  a  "Club  Edition"  that  consolodates 
Inputs  from  participating  clubs.  If 
sufficient  Interest  Is  forthcoming. 
Suggestions  will  be  welcomed. 


Following  Is  a  listing  of  Suppliers  of  Software  and 
Hardware  for  I  he  TS-2068,  There  must  be  more,  and  Up-Date  will 
publish  additions  to  this  listing  as  Information  Is  obtained. 


220  Centre  St. 
Sullivan,  NH  03445 


Cuyahoga  Valley  Software 
615  School  Ave. 
Cuyahoga  Falls,  OH  44221 


APR  Software 

1606  Pennsylvania  Ave.  #204 
Miami  Beach,  FL  33139 


Box  18093 

Austin,  TX  78760-8093 


Oan  Elliott 
RR-I,  Box  117 
Cabool ,  MO  65689 


Footo  Software 
PO  Box  14655 
Gainesville,  FL  32604 


John  McMlchaol 
1710  Palmer  Drive 
Laramie,  WY  82070 


Knighted  Computers 
707  Highland  St. 
Fulton,  NY  13069 


S.E,  Michigan  Group 
Box  614 

Warren,  Ml  48090 


G.U.T.S.  Group 
6625  Clifford  Drive 
Cupertino,  CA  95014 


Kansas  Area  Users 
4557  Cherry 
Wichita,  KS  67217 


TAS  BAM  User  Group 

PO  Box  48961 

St  Petersburg,  FL  33743 

Newsletter 

TSUG  of  Phi ladelphia 

PO  Box  53490 

Phi ladelphia,  PA  19105 


Westmoreland  TSUG 
PO  Box  3051 
Greensburg,  PA  15601 


Vashon  I  si  User  Group 
PO  Box  199 
Vashon,  WA  98070 


Ml  ie  High 

914  S.  Victor  Way 

Aurora,  CO  80012 


Hampton  Roads 
1 12  Kohl er  Crescent 
Newport  News,  VA  23603 
Newsl etter 

Sincus  News 
1229  Rhodes  Road 
Johnson  City,  NY  13790 
News  I etter 

L.  I.S.T. 

10  Idle  Way  Drive 
Center  Point,  NY  11721 
News  I etter 


Toronto  Canada  Group 
PO  Box  7274,  Stn  A 
Toronto,  Canada  M5W  1X9 
Newsletter 

San  Francisco  Area 
PO  Box  1312 
Pad  flea,  CA  94044 
Newsletter 

l*lorth  Carolina  Group 
206  James  St. 
Carrboro,  NC  27510 


Miiwaul<ee  User  Group 
5052  N.  91st  St. 
Mi  lwaui<ee,  Wl  53225 
Newsl  etter 

Sun  Lake  Group 
1200  Lake  Drive 
Grand  Island,  FL  32735 


Vancouver  Group 
2006  High  View  Place 
Port  Moody,  BC  V3H  1N5 
Canada  ^ 

CCATS 

1419  1/2  7th  St. 
Oregon  City,  OR  97045 
Newsl  etter 

NE  Florida  TSUG 
6634  Oriole  Ave. 
Jacksonvl  lie,  FL  33216 
Newsletter 

TSUG  of  Orlando 
808  E.  Anderson  St. 
Orlando,  FL  32801 


S.T.U.N. 

Rt.  1,  Box  21 

Glade  HI  11 ,  VA  24092 


u 


PO  Box  280298 
Dallas,  TX  75228 


Basically  Programming 
2528  W.  Olive 
Fullerton,  CA  92633 


Beaver  Computer  Products 
756  Fleming  Ave. 
Winnipeg,  Manitoba  RIK  IV5 
Canada 

Bob  Crecco 

1627  Dewey  St. 

New  Albany,  IN  47130 


Byte  Back 
R+.  4,  Box  54 
Leesvl lie,  SC  29078 


Byte  Power 

1748  Headowvlew  Ave. 

Pickering,  Ontario  LtV  368 

Canada 

Chal-ChI  Chao 

73  Sullivan  Drive 

Morago,CA  94556-1209 


Curry  Computers 
PO  Box  5607 

Giendale,  AZ  85312-5607 


Quantum  Computing 
PO  Box  1280 
Dover,  NJ  07801 


RMG  Enterprises 
1419  1/2  7th  St. 
Oregon  City,  FL  97045 


S4K  Enterprises 
2107  SE  155th 
Portland,  OR  97233 


Sharp's  Inc. 
RT  10,  Box  459 
Mechanclsvllle,  VA  23111 


SInclink  Co. 

6675  Clifford  Drive 

Cupertino,  CA  95014 


G.  Russell  Electronics 

RD-I  Box  539 

Centre  Hal  I ,  PA  I682B 


Grey  i  Clifford  Computer 
PO  Box  2186 
inglewood,  CA  90305 


Gulf  Micro 

1317  Stratford  Ave. 

Panama  City,  FL  32404 


Heath  Computer  Services 
950  E.  52  South 
Greentown,  IN  46936 


Herb  Bowers, Sr. 
2588  Hoodshire  CIr 
Chesapeake,  WA  23323 


JRC  Software 
PO  Box  448 
Scottsburg,  IN  47170 


Jack  Dohany 

390  Ruthoford  Ave 

Redwood  City,  CA  94061 


Jameco  Electronics 
1355  Shoreway  Rd. 
Belmont,  CA  94002 


Sincpac  Software 
5206-1  Cedarbend  Dr. 
Fort  Myers,  FL  53907-7514 


SIrus  Ware 

6  Turning  HI  il  Rd. 

Lexington,  MA  02173 


Sunset  Electronics 

2254  Taravai  St. 

San  Francisco,  CA  94116 


The  01 1 ger  Co. 
11601  Whidbey  Drive 
Cumberland,  IN  46229 


Thomas  B.  Hoods 
PO  Box  64 

Jefferson,  NH  03583 


Larken  Electronics 
RR-2 

Naven,  Ontario  K4B  IH9 
Canada 

Mark  L.  Fondrick 
PO  Box  2392 

Secaucus,  NJ  07004-0992 


Market  Enterprises 
PO  Box  2392 

Secaucus,  NJ  07094-0992 


Heta  Media 
726  W.  17th 
Vancouver,  BC  V5Z  1T9 
Canada 

Mountaineer  Software 
749  Hi  1 1  St.  16 

Parkorsburg,  WV  26104 


Novel  soft 

35  Candle  LIteway 

Niilowdale,  Ontario  H2R  3J5 

Canada 

Paul  Bingham 
Box  2034 
Mesa,  AZ  85204 


Peripherals  Direct  LTD 
PO  Box  4301 
Northbrook,  IL  60065 


Variety  Sales 

325  W.  Jersey  St.  #20 

Elizabeth,  NJ  07202 


WMJ  OalB  Syslmtn 
4  Butterfly  Drive 
Hauppauge,  NY  I  I  788 


Wymi  i  Corp. 
Box  5904 

Boil  Ingham,  WA  98227-5904 


Zebra  Systems 
78-08  Jamaica  Ave. 
Woodhaven,  NY  11421 


Articles  and  Reviews 


January  1988 


The  TS-2068  DISK  DRIVE  SYSTEMS 
Ooablnatlons  to  Achieve  Increased  tepabMItle 


OWNER'S  Basic — y  Plus — *  Additional   ^    EQUALS  Additional  Capabilities 

Disk  System  Device 


Oliger  SAFE 
Disk  System 


SPDOS  Disk- 
Software 


->    Oliger  SAFE  DOS  +  RAMEX  DOS  Formats 

Two  Simultaneous  Disk  Operating  Systems 


Oliger  SAFE 
Disk  System 


LARKEN  SKDOS 
Cartridge 


->  Oliger  SAFE  DOS  +  Larken  DOS  Formats 
Two  separate  Disk  Operating  Systems 


Larken  Disk 
System 


►  Oliger  SAFE - 
Board  A 


->  Larken  DOS  +  Oliger  DOS  Formats 

Two  Separate  Disk  Operating  Systems 


Larken  Disk 
System 


'  Aerco  FD-68  < 
Disk  System 


Larken  DOS  +  Aerco  DOS 

Two  Separate  Disk  Operating  Systems 


Aerco  FD-68 
Disk  System 


'  Plus  —4  Aerco  on-board 
Extra  Memory 


Two  Disk  Operating  Systems  (RP/M  +  Aerco  DOS) 
Extra  Memory  banks  for  programming 


Aerco  FD-68 
Disk  System 


^  PI  us  — ->  Larken  SKDOS 
Cartridge 


^  Three  Disk  Operating  Systems 

{above,  plus  Separate  Larken  DOS) 

Plus  RAM  DISK  if  Extra  Memory  present  on  FD-68 


RAMEX  Disk 
System 


«  Not  aware  of  possible 
Combinations 


RAMEX  SPDOS  Operating  System 

RAMEX  Disk  System  is  no  longer  supported 

by  a  manufacturer. 


TOS  (Zebra) 
Disk  System 


» Not  aware  of  Possible 
Combinations 


->  TOS  Disk  Operating  System 

TOS  Disk  is  no  longer  supported 
by  a  manufacturer. 


All  of  the  above  Disk  Systems  are  compatable  with  Cassette  LOAD  and  SAVE  operations. 
Cassette  Is  the  "Transfer  Medium"  to  SAVE  programs  that  are  formatted  by  any  disk  system;  then 
re-load  to  the  TS-2068  that  has  a  different  disk  controller  Installed;  then  EDIT  the  program 
lines  and  MODIFY  the  DOS  SYNTAX;  then  SAVE  to  Disk  with  the  DOS  that  Is  In  use.  The  Computer 
must  be  turned  OFF  to  transfer  from  one  Disk  System  to  another.  There  are  two  exceptions  to 
this.  The  Oliger  SAFE  and  SPDOS  software  combination  provides  two  DOS  systems  Co-resident.  The 
Aerco  FD-68  Disk  System  has  Aerco  DOS  and  RP/M  Co-resident. 


7 


Articles  and  Reviews 


January  1988 


SPDOS  -for   North  America 

Ian  Robertson 

SPDOS  was  originally  isarketsd  in  the  UK  by  WATFORD  ELECTRONICS 
as  a  disk  interface  and  operating  systea.  KEHPSTON  (the  joystick 
interface  people)  later  sarksted  a  version  which  used  a  ssaller 
aiount  of  RAH,  approx.  700  bytes  (Watford  used  about  8k).  A 
varient  of  tlie  SPDOS  interface  was  narketed  in  North  Aaerica  fay 
RAHEX  IMTERNATIQNAL  LTD.  and  known  as  the  MILLENNIA  K.  This  is 
the  systei  that  in  1985  introduced  se  to  the  wonders  of  a  disk 
systea  (later  to  be  followed  by  the  OLISER,  LARKEN,  BETA  PLUS, 
KEHPSTON  and  finally  the  CUHANA).  The  SPDOS  presently  being 
aarketed  by  the  CUYAHOBA  VALLEY  SOFTWARE  WORKS  is  a  aodification 
of  SPDOS  far  the  2068  running  on  Oliger  hardware.  It  is  sold 
under  license  froi  ABBEYDALE  DESI5NERS  LTD.,  who  wrote  SPDOS.  As 
a  tatter  of  fact,  the  awunt  paid  (by  CVSW)  to  Abbeydale  is  a 
Urge  portion  of  the  selling  price.  This  group  has  not  written 
this  software  to  sake  Boney,  but  rather  to  help  extend  the  life 
of  our  coiputers.  The  DOS  operating  systei  is  available  on  two 
5.25  inch  disks,  for  either  40  track  DSDD  or  80  track  DSBD 
drives. 

The  first  disk  is  an  Qliger  disk  with  a  "boot"  that  replaces 
soie  of  the  hardware  of  the  Hillennia  K  interface.  The  second 
disk  is  the  "SPDOS  Systei'  disk. 

HOM  IT  WORKS: 

SPDOS  is  a  RAM  based  DOS.  Because  of  that  it  uses  several  K  of 
RAM  and  can  be  run  concurrently  with  the  Oliger  DOS  (which  uses 
no  RAM)  in  operation.  Certain  SPDOS  coiaands  are  read  fro*  disk 
and  the  systea  disk  should  be  in  Drive  *1  (Oliger  drive  10). 
Since  SPDOS  is  also  conpatible  with  the  Millennia  K  systea,  it 
works  only  in  the  2068  lode.  Disks  which  were  written  on  the 
Rasex  systea  can  be  read  and  written  to.  However  these  disks 
should  be  considered  as  Data  disks  (disks  without  the  operating 
systei  on  thei). 

The  DOS  occupies  aeaory  froa  5B500  to  roughly  63500.  It  supports 
sequential  files  and  prograa  overlays.  The  overlays  are  prograa 
segtents  with  line  nuabers  that  are  loaded  in  froa  disk 
replacing  existing  ones,  aaking  aeaory  use  sore  efficient  and 
adding  structure  to  the  prograi. 

The  DOS  is  as  fast  as  the  Oliger  in  Loading  and  Saving.  SPDOS 
allows  144  directory  entries  per  disk  and  uses  a  ainiaua  of  IK 
for  a  file.  A  faraatted  80  track  drive  will  have  aproxiiately 
785K  of  space  free  to  write  to.  Each  SPDOS  track  is  organized 
into  ten  512  byte  sectors.  SPDOS  supports  coaaands  like  MOVE, 
ERASE,  and  will  autorun  prograas  naaed  "AUTO*  when  the  systea  is 
Booted  up.  It  has  the  ability  to  perfos  a  selective  CAT.  All 
SPDOS  coaaands  Bust  be  prefixed  by  the  coaaand  'PRINT  #  4:'. 
Other  coaaands  are  used  in  the  noraal  way.  Those  of  you  using 
the  latest  version  of  the  LARKEN  disk  interface  will  recognize 
this  syntax. 


Several  utility  prograas  are  included:  SYSCOPY  which  will  back 
uo  SPDOS,  COPY  which  will  assist  in  selectively  copying  disks, 
ERASE  which  does  the  saae  for  erasing  files,  MINIDOS  a  truncated 
DOS  located  at  49644  to  53600,  and  MAIL/BAS  a  deaonstration  data 
base. 

The  SPDOS  systes  should  be  considered  an  enhancetent  to  the 
Oliger  Safe  Disk  Operating  Systea  rather  than  a  replaceaent.  It 
will  be  of  the  aost  use  to  people  who  write  a  lot  of  their  own 
prograas,  and  those  who  have  a  Millennia  K  systea  or  know  users 
who  do  as  it  adds  a  certain  aaount  of  coapatibility  to  the  2068. 
For  exaaple,  Rasex  aarketed  2068  disk  versions  of  MASTERFILE, 
TASHQRD  II  and  QMNICALC.  This  software  should  allow  these 
prograas  to  he  run  on  the  OLISER  disk  systea,  but  I  aa  not  sure 
about  the  ability  to  print,  using  an  80  coluan  printer.  The 
RAMEX  systea  is  coapatible  xith  the  TASMAN  C  Centronics 
interface,  while  the  QLIBER  is  coapatible  with  the  OLISER/AERCO 
Centronics  interface. 

KHERE  TO  BUY  IT: 

The  cost  is  $24.95  +  $1.50  for  postage  and  is  available  only 
froa  the  CUYAHQfiA  VALLEY  SOFTWARE  WORKS,  615  School  Ave. , 
Cuyahoga  Falls,  Ohio  44221. 

2068  :  Larry  Kenny  of  LARKEN  ELECTRONICS  has  done 
it  again'.  He  has  produced  a  disk  interface  cartridge,  that 
plugs  into  the  cartridge  port,  which  turns  your  RAHEl  interface 
into  a  LARKEN  interface.  And  it  works!  It  coies  with  the  DOS 
on  a  2764  Eproa  and  the  FORHAT  software  on  tape.  The  FORMAT 
prograsfle  is  loaded  into  the  coaputer  and  after  configuring  it 
to  suit  your  (up  to  4)  drive  systea,  it  loads  itself  to  disk.  I 
have  tried  it  on  both  3SDD  3'  and  5  1/4*  DSQD  drives,  without  a 
problss.  The  LARKEN  extended  basic  coaaands  also  work  on  ay 
RAMEX  hybrid.  Now  for  the  interesting  part  -  the  cartridge  does 
not  have  to  be  resoved  froa  the  cartridge  port  when  the  m£i 
DOS  is  used  AND  by  switching  off  the  RAKEX  DOS  eqroa,  the  RAH£,t 
does  not  have  to  be  sBodified  in  any  way. 


Prof  I le  of  the  Author 

Mr.  Ian  Robertson  Is  the  Liaison  Officer  for 
the  Toronto  Timex  Sinclair  User  Group  and  a  regular 
writer  for  their  fine  publication  "Sine  Link".  Ian 
has  every  computer  that  bears  the  Sinclair  name  and 
is  current  on  all.  Despite  pressures  of  business 
and  family  Ian  finds  time  to  contribute  his 
knowledge.  We  look  forward  to  his  future  article 
about  SPDOS,  The  QL,  and  other  Items  of  Interest. 


8 


Articles  and  Reviews  January  1988 


LARKEN  DSK400  DISK  OPERATING  SYSTEM 
A  review 
by  G.F,  Chambers 

Larry  Kenny  has  come  out  with  what  in  effect  is  his 
third  generation  disk  interface  system.    Possibly  one 
should  say  his  2nd  generation,  since  It  could  be  said 
that  the  first  generation  had  two  phases. 
Lets  review  the  background: 

The  first  system  was  based  on  an  EPROM  DOS  (which 
was  bank-switched  into  the  63488  area  of  memory),  plus 
several  disk  DOS's.  The  second  phase  of  this  first 
system  provided  a  cartridge  DOS  which  was  bank- 
switched  into  the  ROM  area  of  the  computer  (when  disk 
functions  were  required),  and  eliminated  the  need  for 
the  EPROM-  and  disk-based  DOS's.  The  cartridge  also 
provided  several  supplementary  features  not  available 
on  the  intial  system.  This  system  was  confined  to  the 
use  of  two  DSDO  drives,  and  formatted  disks  to  a  160K 
capacity  and  maximum  of  50  files. 


The  new  system,  the  DSK400,  subject  of  this  review, 
consists  of  a  cartridge  board  very  similar  to  the 
original,  plus  a  new  interface  board.  The  new  inter- 
face board  measures  about  6  inches  by  2  inches,  and 
mounts  horizontally  behind  the  computer.  A  ribbon 
cable  for  the  drive  plugs  into  a  connector  at  the 
right-hand  end  of  the  board.  At  the  other  end  of  the 
board  are  an  NMI  button  and  a  9-pin  joystick 
connector.  Possibly  the  unit  could  fit  into  an  empty 
Memotech  or  Gladstone  ZX81  64K  RAMpack  case.  The  board 
is  equipped  with  a  gold-plated  female  connector  with  a 
tinned  male  through-connector,  for  adding  other 
peripherals.  Four  of  the  nine  chips  on  the  Interface 
board  are  socketed.  The  quality  of  the  board  Is  very 
high. 

The  system  can  handle  a  variety  of  drives,  up  to  a 
maximum  of  four.  It  is  said  to  be  capable  of  handling 
3",  3h"i  and  S^s"  (not  8")single  or  double  sided  drives 
in  single-,  double-,  or  quad  density.  I  have  only 
tried  it  on  a  SA455-type  5^"  drive  in  the  DSDO  mode. 
In  this  mode  disks  can  be  formatted  to  hold  just  over 
400K. 

The  sytem  uses  all  the  familiar  Sinclair  commands, 

including  CAT,  ERASE,  LOAD,  SAVE,  MERGE,  OPEN  #,  CLOSE 
#,  FORMAT  ,also  GOTO  and  PRINT.  All  disk  commands  are 
prefaced  with  PRINT  USR  100:  or  PRINT  #4: 

The  system  Is  compatible  with  the  2068  and  the 
Spectrum  mode,  A  Spectrum  EPROM  can  be  mounted  on  the 
cartridge  and  switched  in  with  a  short  BASIC  command 
from  the  2068  mode.  It  has  an  AUTOSTART  mode,  by  which 
you  can  boot  a  program  into  memory  by  holding  the 
ENTER  key  operated  while  powering  up  the  computer. 
Only  one  program  per  disk  can  be  handled  this  way.  I 
usually  make  this  a  MENU  program  to  select  the  program 
that  I  want  from  the  disk.  This  AUTOSTART  program  can 
be  used  to  automatically  boot  the  computer  into  the 
SPECTRUM  mode  from  a  cold  start,  and  produce  the  menu. 


With  an  appropriate  EPROM    DOS    the    cartridge  is 
also  suitable  for  use  with  several  other  disk  systems, 
i  such    as    the    AERCO,    RAMEX,    OLIGER;    Improving  the 
I  performance  of  these  sytems  significantly.  It  can  also 
I  be  used  with  the  OS-64  and  LROS    cartridge    chips,  by 

'  mounting  them  on  the  cartridge  board. 

I 

A  program  to  format    disks    is    supplied   on  disk, 
along  with  a  program  to  facilitate  copying  disks  using 
two  drives.  The  FORMAT  program  will    format    disks  as 
either  double  or  single  sided,  and  to  40  or  80  track 
density. 

Programs  can  be  saved  (and  loaded)  with  all  the 
command  forms  used  with  tape,  as  for  example::  SAVE 
"progrm.Bl",  SAVE  "prognruBl"  LINE  100,  SAVE  "prog, CI" 
CODE  start,  length,  SAVE  "progrm,Cl"  SCREENS,  SAVE 
"progr,Al"  DATA  (),  SAVE  "progr.AS"  DATA  $(). 

Programs  can  be  removed  from  the  disk  using  the 
ERASE  coirenand.  Tracks  so  erased  become  available  for 
subsequently  saved  programs. 

The  NMI  (snapshot)  button  means  that  you  can 
capture  to  disk  those  unbreakeable  programs  on  tape. 
Simply  load  your  program,  press  the  NMI  button  and  the 
program  will  be  transferred  to  disk.  It  captures  the 
complete  memory  from  address  22490  upwards,  and  uses  9 
tracks  of  a  disk.  Loading  one  of  these  programs  from 
disk  takes  just  under  7  seconds.  A  disk  can  hold  8  of 
these  programs,  and  have  7  tracks  spare  for  menu,  etc. 

Programs  such  as  Tasword,  Timachine,  Pro/file, 
Mtermll  are  readily  modified  to  run  on  the  DSK4D0 
system.  Mscrlpt  with  Jack  Dohony's  mods  can  be 
similarly  adapted. 

The  joystick  port  accepts  the  9-p1n  connector 
standard  on  joysticks,  and  works  with  those  programs 
which  are  provided  with  the  Kempston  joystick  option. 

The  DUMP. 81  and  C0PY2D.B1  programs  supplied  on  disk 
with  the  system  use  a  modified  disk  DOS  which  can  be 
used  from  BASIC  programs  to  control  the  drive 
operation.  This  means  that  disk  utilities  can  be 
written  In  BASIC  to  perform  a  variety  of  tasks, 
similar  to  what  has  been  done  with  the  earlier  LARKEN 
systems.  Typical  of  this  are  three  programs  which  I 
have  modified  for  the  DSK400.  They  are  a  RENAME 
program  , which  will  rename  programs  on  disk;  DOCTOR 
with  which  one  can  inspect  and  repair  errors  on  disk 
tracks;  and  INDEXER  which  maintains  a  file  of  programs 
on  a  disk  collection. 

The  DSK400  Includes  a  number  of  Extended  Basic 
commands.  These  permit  the  placement  onscreen  of  up  to 
i  three  "windows"  of  any  size,  colour,  and  position;  and 
writing  to  them  in  proportionally  spaced  characters. 
Also  there  is  a  set  of  7  graphics  patterns  which  can 
be  called  up  as  desired  to  fill  areas  of  screen.  A 
CIRCLE  command  will  fill    in    selected    areas   of  the 


00  psf  aJo  f 


10 


Articles  and  Reviews 


88 


screen  with  a  selected  pattern,  INK  and  PAPER  commands 
will  instantly  change  p:iper/ink  colours.  POKE  will 
poke  numbers  higher  than  255  Into  tv/o  addresses 
automatically. 

There  Is  buint-in  printer  driver  software  by  which 
a  large  printer  may  be  used,  making  use  of  the  LLIST. 
and  LPRINT  commands.  This  feature  is  accessed  by  the 
command:  PRINT  #4:  OPEN  #3,"lp".  A  drawback  to  this 
feature  is  that  I  found  it  impossible  to  control  line 
length;  if  there  is  a  control,  I  could  not  find  it.  As 
a  consequence  I  found  my  printer  putting  out  lines 
with  108  characters  in  them. 

Final  Conclusions:  An  easy-to-use  system  which  will 
greatly  enhance  the  use  of  the  TS2068.  Highly 
recommended. 

Available  from:  Larken  Electronics,  R.R.#1,  Navan, 
Ontario,  Canada  K4B  1H9  Price  for  interface  board, 
cartridge  board  and  drive  connector  cable:  Can  $145. 
(You  will  also  need  to  purchase  the  disk  drives  and  a 
power  supply  for  them) 

The  LKDOS  Cartridge 

In  addition  to  the  Larken  Disk  system  that  Is 
reviewed  above,  there  Is  another  Larken  development 
that  deserves  mention.  It  is  the  LKDOS  CARTRIDGE, 
which  contains  the  Larken  DOS  and  operates  with  two 
other  Disk  Controllers  for  the  TS-2068.  The  LKDOS 
Cartridge  plugs  into  the  Cartridge  Compartment  of 
the  TS-2068.  When  used  with  OLIGER  SAFE  Disk 
system,  Board  B  of  the  Ollger  system  Is  removed. 
Then  the  LKDOS  cartridge  utilizes  the  Ollger  disk 
controller  board  as  the  controller.  The  result  is  a 
LARKEN  DOS  System  that  formats  and  reads  disks  In 
the  Larken  format,  and  has  all  of  the  Extensions  to 
Basic  as  discribed  in  the  above  review. 

The  LKDOS  Cartridge  can  also  be  used  with  the 
AERCO  FD-68  Disk  Controller.  The  LKDOS  uses  a 
Separate  EPROM  for  use  with  Ollger  or  Aerco  disk 
controllers.  The  results  are  the  same,  a  Larken 
DOS.  When  used  with  Aerco  FD-68,  the  built  In  extra 
memory  of  Aerco  Is  used  as  "RAM  DISK".  This  unique 
feature  "formats"  40K  banks  of  RAM  as  if  the  RAM 
were  anther  disk  drive  In  the  system.  A  256K  Aerco 
Ram  is  used  as  if  It  were  four  more  disk  drlvec, 
each  having  4»K  of  storage.  The  Ram  Disk  Is 
somewhat  faster  operating  than  a  disk  drive,  but  of 
course,  the  data  storage  is  gone  when  you  turn  off 
the  computer. 

Before  using  the  LKDOS  cartridge  with  the  Aerco 
FD-68,  a  small  modification  to  the  FD-68  Is  required 
to  add  a  switch.  Details  are  given  In  the  Larken 
documentation.  No  modification  Is  needed  with  the 
Ollger  Safe  Board  A.  Please  refer  to  the  article  in 
this  issue  titled  "The  TS-2068  Disk  Drive  Systems" 
for  more  information  about  the  use  of  the  LKDOS 
cartridge.  For  further  information  write  to  Larken 
Electronics,  address  given  In  the  above  review, 

11 


Th«  Lar'i 


an  disk  iyat.am  tor  thm  Tl««x  2063  is  fully  Sp.ctr-ja 
I  «nd  «iao  can  b«  U4|«<1  with  Aro»  or  Lro«  cartridg.  roa« 
It  supports  *H   tolc.n  k«yvorda  -  CAT,   ERASE ,  LOAD  , SAVE ,  MESGE , 
OPEN* , CLOSE*  and  aiao  GOTO  and  PRINT  that  w«r«     lataadad     to  ba 
uaad  with  a  .xtarnal  aaaa  atoraga  davica.   FORMAT  and  HOVE  ara 
auppllad  aa  prograaa  that  run  la  raa. 

Tha  way  thaaa  eoamanda  ara  lapllaantad  by  tha  Larkan  ayataa  la 
to  pracaad  thaa  with  a  Sand  uar  100: 
as:       RAND  USR  100:  CAT 
For  aaaiar  typing  and  a  ahortar  coaaand  tha     PRINT  »*:  eoaaand 
can  b«  uaad  Inataad  of  Sand  Uar  100:.   To  uaa  PRINT  »*:  you  auat 
firat  Opan  Channel   4  to  tha  dialtdriwa  with  - 
RAND  OSH  100:  OPEK  t4,-dd- 
You  can  now    pracaad    all    LXdoa    and    Ex-baaie    eoaaanda  with 
PRINT  »*:  ag:        PRINT  »*:  tOAD  "fllanaaa.ax' 

If     tha     Print  eoaaand     la     uaad     bafora     it     haa  baan 

laltiallaad,  arror  0  -  Invalid  Straaa  will  raault. 

IXDOS  FIX a  Haaas 

Tha  only  othar  diffaranca  batwaan 
atandard  caaaatta  eoaaand,  la  tha  fila 
Lkdoa  uaaa  a  file  oaaa  that  contains  i 
charactara  followad  by  a  two  charactai 
aaparataa  tha  prograa  naaa  froa  tha  axtanaion.  Tha  first  lattai 
of  tha  axtanaion  talis  tha  dos  what  typa  of  flla  It  is  .  It  auj 
b«  an  A,B  or  C 

'A'  for  Array  'B'  for  Baaic  'C  for  Coda 

Tha  aaeond  lattar  of  tha  axtaadloa  can  ba  any  charaetar  axapi 
If  you  ara  saving  a  atrlag  array,  It  auat  ba  a 
Tha  axtaasioa  auat  ba  two  charactara  long-. 

Tha  only  charaetar  that  can't  ba  uaad  la  a  flla  naaa  la  a  'T. 
Thia  la  uaad  aa  a  'wildcard'  charaetar  for  uaa  in  CAT  aaarehas. 
Seaa  axaaplaa  of  fila  aaaaa: 

"Progra. Bl"  A  Baaic  prograa 

'sauA.Cx'  A  coda  flla 

-Nuaa.AS*  A  String  Array 

"Nuatars. Al'  A  Nuaarie  Array 

SAVE  COMMANDS 

Bafora  you  can  aava  your  prograa*  and  data  to  tha  disk,  your 
disk  auat  b«  foraattad.    (Saa  aactloa  oa  aatup  and  foraattlag) 
Any    foraula  or  axpraaaion  In  a  eoaaand    can  ba  uaad. 

ag:  PRINT         SAVE  *«  (TO  6)*".CT-  CODE  Start , End-Start 
All  variation*  of  caaaatta  eoaaanda  ara  supportad. 


Lkdoa     eoaaand  and 


I  ppograi 


-  Basic 


prograa 


.ngth 


-  Bytaa  aava 

-  Nuaarie  Array 

-  String  Array 


additional 


PRINT  #4:  SAVE  "Prog.Bl" 

:  SAVE  -Prog.Bl*  LINE  100 
:  SAVE  'Prog. CI*  CODE  start, 1^ 
:  SAVE  *Preg.Cl-  SCREEN* 
:  SAVE  -prog.Al-  DATA  () 
:  SAVE  "Prog. A* *  DATA  *() 
Bafora  aaviag  aaka  aura  that  tha  wrlta  protact  aotch  on  tha 
disk  la  net  eevarad  by  a  protact  atlekar  and  that  tha  disk  is 
la  tha  drlva  proparly  vlth  tha  door  eloaad. 

EXTENDED  BASIC  COMMANDS  : 

Thasa  eoaaanda  eonaiat  of  mxtmndad.  graphic 
and  I/O  davica  Chaaaals  and  up  to  3  acroHiag  window: 
scraan  In  proportional  spaced  eharaetars.    142  to  ovaj 

GRAPHIc'"cOM«ANDS: 

-  PRINT  »4:  DRAW  width,hairth, pattern  (This 
box  fill  or  clear  eomajind  that  atarta  at  the  last  plot  eoaaand 
that  fills  in  tha  aeleetad  pattern   (0  to  9     <or  10-  user  defined 
pattern  that  eenalata  of  8  bytaa  atartiag  at  addreaa  23S40) 

-  PRINT  #4:  CIRCLE    x,y, patters  (Thia  is  a  region  filling 
eoaaand  that  fllla  froa  right  to  left,  aelaeted  blaaJc  areas  of 
the  screen  ta  the  patterns  described  above.   It  will  fill  a  line 
until  it  fiada  a  set  pixel)     x,y    seta  the  starting  poa. 

-  PRINT  »*'.  INK  X      tiaaediatly  changes  ink  color  on  screen) 

-  PRINT  *4:  PAPER  x  (iaaediatly  changes  paper  color  en  screen) 

-  PRINT  »*:  POKE  a,b        (this  does    a    double  poke  for  16  bit 
auabers  .  b  Can  be  0  to  6S53S 

CHANNEL  AND  HINDOH  COMMANDS  : 

-  PRINT  #4:  OPEN  »n  , 'device*  This  attaches  a  chann.l  to  a 
display  device,    (n  can  be  channel  2  to  15  )   device  can  ba  "wO*, 

(window  0  to  2)   or  *lp"   (larg  e  printer     'aerco  type 


IF' 


This 


-  PRINT  #4:  CLOSE  »n     (n  can  be  2  to  15  . 
used  for  cloaeiag  channels  opened  with  the  above  < 
never  use    the    Slnclar    Close    eoaaand     (unprecaeded    by  Lkdoa 
switch)  to  elose  a  chaaaal  epeaed  by  Ucdos) 

-  PRINT  »4:   INPUT* (window) , top, left  poa, right  poa.bottoa  poa 
This  eoaaaad  daflaas  a  vladows  size,  positioa  aad  color. 

-wiadow'  is  0-2  ,  ether  paraaeters  are  standard  print  positions 
io  afaaoiute  auabers   (0  to  20or3l)   EG:  PRINT»4 : INP0T#1 ,0 , 10 ,20 ,3 

This  would  define  window  #1  to  have  its  upper  left  corner  at 
print  pos  0,10  aad  the  window  would  be  10  units  wide  (20-10) 
The  bottoa  of  the  window  would  be  at  the  8th  line, 
the  screen  colors  that  are  being  uaad  when  the  wiadow  is  defined 
will  atay  with  that  window. 

-  PRINT  #4:  CLEAR  w      This  will  clear  the  viadow  (0-2)  aad 
restore  the  priat  poa  to  tha  tep  of  the  wiadew  .  It  will  also 
racaler  the  wiadow. 

Prof  I  1 e  of  the  Author 


Mr.  George  Chambers  Is  one  of  them  "rotating 
officials",  always  Involved  In  the  Toronto  TSUG,  and 
now  the  club  Secretary.  George  contributes  a 
regular  column  In  "Sync  Link"  about  the  Larken  Disk 
system  and  other  subjects.  If  it  can  be  done  with 
Larken,  George  knows  how  to  do  It.  We  look  forward 
to  other  articles  and  programs  by  George. 


Articles  and  Reviews 


January  1988 


TIME  OtIGER  TS~2(D6a  SffkFE  PISHC  SYSTEM 


A  Review  By: 

Mr,  John  Ollger  has  now  finished  "phase  4"  of 
the  JLO  SAFE  DISK  Operating  System,  which  I  have 
dubbed  "SDOS",  This  review  will  attempt  to  give  an 
overview  of  this  versatile  hardware  and  DOS.  I 
believe  that  even  the  users  of  SAFE  may  glean  some 
new  Information.  First,  the  hardware  Is  designed  to 
the  "SHUGHERT  STANDARD"  which  means  that  It  conforms 
to  an  existing  standard  for  FORMAT  and  CONTROL  of 
Double  Density  Soft  Sector  Disk  Drives.  Several 
types  of  drives  are  usable  with  this  system 
Including;  5  1/4  Inch  Half  or  Full  height.  Single  or 
Double'  Side  format;  3"  Disk  Drives  by  Amdek,  and 
some  newer  3  1/2"  disk  drives.  The  key  as  to 
compatabi I Ity  Is  whether  the  drive  Is  "SHUGHERT 
STANDARD". 

The  Ollger  SAFE  hardware  consists  of  two 
circuit  boards  that  fit  up-right  In  the  Ollger 
Expansion  port.  This  expansion  port  has  four  slots 
and  a  extruding  edge  card  connector  to  accommodate 
other  add-on  devices.  It  also  contains  a  "RGB 
INTERFACE"  to  connect  to  a  RGB  Monitor,  "BOARD  A" 
of  the  system  contains  the  heart  of  the  disk 
interface,  the  Western  Digital  Controller  chip 
WS-1770,  and  its  Interface  circuitry.  "BOARD  B"  of 
the  system  contains  16K  of  extra  memory.  8K  Is  a 
EPROM  that  contains  the  assembly  code  of  the 
operating  system,  some  new  BASIC  Language  functions, 
and  a  Centronics  Printer  Driver  Software,  The  other 
8K  Is  RAM  that  Is  used  for  Instruction  processing  of 
the  new  Basic  Language  and  the  Disk  Control  Basic 
Commands. 

One  should  think  of  the  Ollger  Safe  Disk  System 
as  the  centerpiece  of  a  larger  system  that  Includes 
the  Printer  Interface,  the  D I sk  Control  I er.  Extra 
Memory,  Additions  to  the  TS-2068  ROM,  RGB  Monitor 
Interface,  and  a  "Control  System"  that  Includes 
control  of  .  the  printer.  Extra  Memory,  and  the  Disk 
Drive.  The  Extra  Memory  Board  has  not  yet  been 
released.  "SDOS",  the  controlling  software  has  been 
a  on-going  development  since  the  SAFE  DISK  hardware 
was  released  during  the  winter  months  of  1986.  Each 
stage  of  development  was  made  available  to  the  users 
In  a  Up-Dated  EPROM.  The  latest  EPROM  carries  the 
Identlcatlon  of  "V2-40",  For  the  user  to  up-date 
his  system  Involves  only  the  replacement  of  ihe 
EPROM  that  Is  In  use. 

As  of  now,  the  8K  EPROM  Is  almost  completely 
filled  with  assembled  code,  and  un less  Mr.  01 1 ger 
decides  to  piggy  back  another  EPROM,  It  appears  that 


Bill  Jones 

SDOS  Is  In  a  finished  state.  A  table  of  the  SDOS 
Language  Syntax  Is  listed  below.  Note  the 
simlllarlty  to  the  regular  TS-2068  Cassette 
Instructions  for  easy  learning.  Also  note  the 
brevity  of  the  command  syntax  (fewer  key  strokes). 
Al  I  of  those  commands  can  be  performed  by  Keyboard 
entry  or  from  within  program  lines.  Disk  file 
"titles"  can  be  concantated  as,  LET  A$="Tltle",  and 
then  use  A$  as  a  title  within  the  disk  command.  Or, 
<LET  A$=A$+STR$  5>  and  the  program  title  to  SAVE  or 
LOAD  would  be  "TItleS", 

THE  SDOS  COMMAND  SYNTAX 

FORI'IAT/"name"  A  diskette  Is  formatted  to 
established  parameters  with  title  of  "name". 

CAT  Loads  the  disk  directory  to  screen.  CAT 
can  be  used  with  a  Input  statement  to  place  a  prompt 
on  screen  to  Input  a  title  to  LOAD. 

MOVE/  Copies  a  diskette  from  current  drive  to 
the  next  drive  In  the  system. 

MOVE/"tltle"  and  type  TO  n  Moves  a  file  named 
"title"  to  disk  n.  The  type  of  file  Is  VAL, 
SCREENS,  DATA,  ABS,  or  If  left  out,  a  BASIC  file  Is 
assumed. 

SAVE/0  Saves  a  auto  loading  menu  program. 
Then  LOAD  ENTER  will  load  the  file  0  program. 

'  LOAD  ENTER  Loads  a  file  0  auto  running  menu 
program. 

SAYE/"name"    Saves  a  BASIC  program  to  disk. 

SAVE/"name"LINE  n  Saves  a  BASIC  program  which, 
when  re-loaded  will  auto  run  at  line  n. 

LOAD/"name"  Loads  a  BASIC  program  named 
"name".  The  programjauto  runs  If  It  was  saved  with  a 
starting  I Ine  number. 

SAVE/"name"CODE  ,adr,byts  Saves  a  machine  code 
table  from  memory  address  and  byte  length  specified. 

LOAD/"name"CODE  adr  Loads  a  code  program  from 
disk  to  starting  memory  address  specified. 

SAVE/"name"VAL  Saves  the  TS-2068  Variable  file 
to  disk. 

LOAD/"name"VAL  Loads  a  Variable  file  from  disit 
to  memory. 

SAYE/"name"SCREEN$  Saves  the  existing  monitor 
screen  to  d Isk, 

LOAD/"name"SCREEN$  Loads  a  screen  from  disk 
and  replaces  the  existing  monitor  screen. 

SAVE/"name"DATA       x()        Saves    a  dimensioned 
Numeric  array  to  disk. 

LOAD/"name"DATA       xO        Loads    a  dimensioned 
Numeric   array  fromdisk. 

SAVE/"name"DATA     x$()        Saves    a  dimensioned 


12 


Character  array  to  disk, 

LOAD/"name"DATA  xS ( )  Loads  a  dimensioned 
character  array  from  disk  and  assigns  the  data  to 
"x$". 

SAVE/"name"ABS  Saves  the  entire  state  of  the 
computer  as  a  BASIC  program,  including  all  vars  and 
at  I  code. 

LOAD/"name"ABS"  Loads  the  above  State  of  the 
Computer  BASIC  program, 

COPY/    Copies  the  screen  to  printer. 

MERGE/"name"  Merges    a    BASIC    program  and 

appends  it  to  the  existing  BASIC  program  in  memory. 
Variables  of  the  MERGED  program  take  priority. 

All  of  the  above  SAVE  commands  will  check  for  a 
identical  named  program  in  disk  and  TOOT  a  warning 
if  one  exists,  then  pause  5  seconds  to  allow  an 
abort, 

SAVE//"name"  This  variation  by-passes  the  same 
name  check  and  SAVES  the  program  whether  a  same  name 
exists  or  not, 

RESTORE/"old  name"  type  TO  "new  name"  Changes 
the  name  of  a  program  in  disk. 

RESTORE/s  Re-initial Izes  the  SDOS  system  to 
TURN  ON  parameters, 

VERIFY/"name  type"  Checks  file  in  disk  and 
verifies  accuracy  of  the  file  data, 

DISK  DRIVE  CONFIGURING  COMMANDS 

LET/s=1  or2  Sets  up  to  FORMAT  a  diskette  for 
either  single  or  double  side  read-write. 

LET/d=0-3  Changes  active  disk  to  disk  number 
spec! f led , 

LET/t=10-250  Sets  up  to  FORMAT  a  diskette  to 
the  number  of  tracks  specified.  Range  Is  10  to  250, 
default  value  is  40. 

LET/h=0-5  Resets  disk  head  step  rate  to 
accommodate  a  slower  drive.  Default  value  Is  0=6ms. 
l=12ms,    2=20ms.    3= 30ms. 

LET/p=o  Selects    the    printer    driver  code 

software  that  is  stashed  in  the  EPROM  to  print  with 
a  Centronics  printer, 

LET/p=t  Deselects  the  Centronics  printer  and 
selects  the  TS-2040  printer. 

The  NMI  PUSH  BUTTON  FUNCTIONS 

ABS  STATE  SAVE  via  numbered  keys.  The  title  of 
the  SAVE  will  be  the  number  pressed, 

SCREENS  SAVE  via  keys  Q  through  T  on  same  row 
of  keyboard.    The  title  will  be  the  key  pressed, 

COPY  SCREEN  to  Centronics  Printer  via  press  of 
key  Z. 

BREAK  to  BASIC  via  press  of  key  C. 
.  RETURN    TO    INTERRUPTED    PROGRAM    via  the  ENTER 
key. 

Holding    the    key    "N"  (for  NEW)  while  pressing 


NMI  button  causes  a  system  RESET  to  copyright 
d Isp lay. 

Holding  keys  1  through  3  upon  power-up  selects 
the  Disk  Drive  number  to  be  active  (instead  of  Drive 
number  0), 

JLO  SAFE  puts  more  data  Into  a  diskette  than 
does  most  other  disk  control  systems,  405K  as  versus 
360K  for  a  IBM  system  for  example,  A  80  track  drive 
formats  for  815K  maximum.  In  addition  SDOS  is 
likely  the  fastest  disk  system  in  exi stance  for  data 
SAVE  and  LOAD  to  and  from  Disk,  faster  even  than  the 
IBM  XT,  Which  brings  up  a  point  to  discuss.  Often 
the  question  arises;  "Does  It  have  Sequential  File 
SAVE  and  Append?".  The  answer  to  that  is,  "No,  such 
a  group  of  functions  are  not  needed,  and  would  not 
be  used  If  provided  with  this  fast  disk  system". 

Opening  and  Appending  a  existing  file  in  disk 
is  a  function  created  to  mitigate  the  deficiencies 
of  some  computers.  For  example,  the  C-128  and  some 
other  computers  limit  string  and  character  array 
content  to  255  characters,  too  I Itt le  to  contai n 
paragraphs  of  textual  data.  The  only  way  to  SAVE 
textual  data  to  disk  with  such  computers  Is  to  use 
counters  to  save  the  data  In  small  "line  length" 
groups  to  disk,  and  keep  on  OPENing  the  disk  files 
to  APPEND  the  text  files  as  additional  data  is  being 
generated.  Each  OPEN  and  APPEND  action  takes  tens 
of  seconds  of  time.  With  SDOS,  we  SAVE  a  Character 
array  of  data  as  large  as  25K  in  three  seconds  flat-. 
If  we  want  to  APPEND  It,  we  bring  it  back  into 
memory  (three  seconds)  and  append  it  at  will 

A  review  can  never  do  justice  In  such  limited 
space  to  a  comprehensive  system  such  as  the  SAFE 
DISK  Controller  and  SDOS.  The  literature  supplied 
with  the  system  Is  about  80  pages  of  type.  How  can 
that  be  boiled  down  to  a  couple  of  review  pages?  It 
can't,  so  one  should  realize  that  this  review  is 
just  a  "overview"  of  the  system.  The  manual 
supplied  is  written  for  the  kit  builder  and  it  goes 
Into  much  more  detail  than  one  normally  would  expect 
of  a  user  manual,  giving  theory  of  operation, 
testing  Instructions,  and  operating  instructions. 
The  manual  Is  an  outstanding  reference  for  both  the 
builder  and  the  the  user  who  buys  the  system 
assembled  and  ready  to  use. 

COMPATABILITY  WITH  OTHER  TS-2068  HARDWARE  - 
SOFTWARE:  Since  the  Safe  Disk  system  is  fully 
decoded    and    does  not  use  the  TS-2068  RAM.  there  is 


Articles  and  Reviews 


January  1988 


no  hardware  or  software  that  this  system 
conflicts  with.  Safe  Disk  operates  with  TS-2068, 
TS-2068  with  Spectrum  Switch,  either  in  the  TS-2068 
or  the  Spectrum  Mode,  and  with  the  Zebra  OS-64 
Cartridge.    No  software  conflicts  exist. 

OLIGER  SAFE  USED  WITH  THE  LARKEN  SKDOS 
CARTF^IDGE:  Board  A  of  the  SAFE  system  is  the  disk 
controller.  When  Board  B  is  removed,  and  the  Larken 
SKDOS  Cartridge  is  installed,  the  system  becomes  a 
LARKEN  DOS.  Then  the  diskettes  are  formatted  to 
Larken  format  and  diskettes  recorded  with  Larken 
disk  systems  can  be  loaded  and  operated.  See  the 
review  of  the  Larken  Disk  system  in  this  Issue. 

OLIGER  SAFE  USED  WITH  THE  SOFTWARE  "SPDOS". 
This  software  on  disk  is  supplied  by  Cuyahoga 
Valley  Software  Works,  615  School  Ave,,  Cuyahoga 
Falls,  OH  44221.  ($24.95  +$ 1 .50  postage) .  The 
SPDOS  Disk  provides  the  RAMEX  DISK  OPERATING  SYSTEM 
"in  addition  to  the  Ollger  SDOS  system".  The  two 
disk  operating  systems  are  combined  to  have  almost 
all  conceivable  disk  command  functions.  Moreover, 
when  the  SPDOS  software  Is  loaded,  diskettes 
prepared  by  a  RAMEX  DISK  system  will  load  and 
operate.  The  SPDOS  Disk  is  highly  recommended  for 
all  Oliger  Safe  users. 

FOR  THOSE  WHO  WANT  EVERYTHING,  the  Oliger  Safe 
system,  with  Larken  SKDOS  Cartridge,  and  with  the 
SPDOS  Disk  Software,  gives  the  user  three  disk 
operating  systems  and  the  capability  to  use  software 
formatted  with  Oliger  Safe,  Larken  Disk,  and  RAMEX 
Disk. 

HARDWARE  OPTIONS  AND  PRICING:  The  manual  Is 
written  for  those  who  build  the  two  circuit  board 
projects.  This  is  a  very  educational  project  and 
one  can  save  a  considerable  amount  of  money  by 
assembling  the  two  boards.  Also,  one  may  purchase 
both  boards  fully  assembled  and  ready  to  use.  The 
building  project  manual  Is  a  very  detailed  source  of 
reference  even  for  the  non-builder.  THE  PRICING 
OPTIONS:  Bare    Circuit    Boards    with    the  SAFE 

EPR0M=S45.95.  Kit  of  both  circuit  boards  with  ail 
parts=$97,95.  Complete  system  Fully  assembled  and 
ready  to  use=$ 119.95  ($129.95  with  the  NMI  Option). 
The  Four  Slot  Expansion  Buss:  Bare  board=S 1 1 .95, 
Board  with  parts=$43.95.    Fully  assembied=i54,95. 

If  you  are  ever  going  to  build  a  electronics 
project,  then  a  Oliger  Kit  is  what  you  should  start 
with.  His  instructions  are  clear  and  easy  to 
understand.  The  only  equipment  needed  to  build 
these  projects  is  a  small  soldering  pencil.  However 
it    will     help    to    have    a  desk  magnifying  glass  to 


better  see  the  tiny  circuit  traces,  and  an  ounce  of 
Acetone  with  a  soft  toothbrush  are  needed  to  clean 
off  the  solder  flux  as  the  job  progresses.  The 
building  time  for  both  boards  will  be  about  5-10 
hours,  Mr,  Oliger  wont  let  you  fall.  For  a  nominal 
charge  of  $10.00  you  can  send  him  a  completed  board 
for  check  out  and  repair.  So,  if  it  doesn't  work 
after  you  build  It,  that  is  your  insurance. 

SOURCE:  The  Oliger  Company,  11601  Whidbey 
Drive,  Cumberland,  IN  46229.  Send  SASE  for  product 
I  ist. 


TS-2068  SUPPORTING  PUBLICATIONS 

Changes  at  Syncware  News:  Tom  Woods  departs 
the  scene,  and  Jeff  Moore  steps  up  from  Editor  to 
Publisher.  Basil  Wentworth,  well  known  to  most  of 
us  "timers"  becomes  Editor  of  Syncware  News.  Fred 
Nachbaur,  the  original  founder  and  publisher, 
continues  as  Technical  Advisor.  Sounds  like  an 
enduring  combo  to  me.  Of  Interest  Is  that  Syncware 
News  Is  beginning  to  support  the  IBM  Clone  Users,  a 
move  that  should  enhance  their  subscriber  base  and 
advertising  potential,  Up-Date  recommends  that  all 
TS-2068  users  continue  their  subscriptions  to 
Syncware  News  and  encourage  their  efforts.  Syncware 
News,  602  S.  Mill  St.,  Louisville,  OH  44641. 
Subscriptions,  $16.95  U.S.  $19.95  Canada  and 
Mexico.    (1  year  6  issues). 

TIME  DESIGNS  and  CTM  MAGAZINE  continues  to  be 
leader  publications  In  support  of  Tlmex  Sinclair 
Computers,  Both  are  excellent  publications,  highly 
recommended  by  UP-DATE.  Time  Designs,  29722  Hult 
Road,  Colton,  OR  97017.  Subscription  $15.00  per 
year,  six  Issues.  CTM  Magazine,  1704  Sam  Drive, 
Birmingham,  AL  35235.  Subscription  $18.00  per  year 
(U.S)  $32.00  per  year  (Canada,  Mexico),     12  issues, 

COMPUTER  SHOPPER,  a  huge  magazine,  having  a 
regular  article  series  about  Tlmex  Sinclair,  and  a 
mammoth  source  of  computer  products  advertisements. 
Computer  Shopper,  5211  S.  Washington  Ave,  PO  Box  F, 
TItusville,  FL  32780.  Subscription  $21.00  per  year 
(12  Issues),  U.S.  Subscriptions  only. 


The  Aerco  FD~68  Disk  System 


A  Review  by:    Syd  Wyncoop 


The  FD-68  Is  a  disk  system  that  has 
subscribed  to  the  'Theory  of  Evolution'.  That  Is 
to  say  that  the  FD-68  Is  not  a  finished  system  and 
undergoes  constant  revision.  However,  Aerco  has 
taken  care  to  make  sure  that  each  update  remains 
compatl bl e  with  previous  versions. 

Some  features  of  the  FD-68  that  I  like  are: 
**  Accepts  any  mixture  of  4  disk  drives  In  3",  3 
1/2",  5  1/4",  or  8"  sizes,  which  can  be  SSSD, 
SSDD,  DSDD,  or  DSQD.  **  Additional  64K  of  RAM 
memory  addressed  In  the  dock  bank  which  Is 
expandable  to  256K,  ***  Bullt-ln  RGB  interface, 
**  Entire  system  is  contained  on  one  board  of 
very  good  quality.  The  board  Is  uncased  but  has  a 
backing  on  the  solder  side,  ***  The  Operating 
system  Is  In  a  ROM  and  uses  none  of  the  'normal' 
system   RAM,  Uses  standard  Sinclair  Keyword 

commands,  ***  Uses  standard  disk  file  names  and 
extensions,  **  Does  not  use  a  channel  number,  so 
there  are  no  conflicts  with  other  device  drivers, 
****  Runs  all  CP/M  2.2  programs,  **  Can  be 
purchased  as  a  complete  system  or  you  can 
economize  by  puting  together  your  own  system. 

While  the  unfinished  system  has  many  unique 
enhancements,  the  process  of  evolution  has  created 
a  few  drawbacks.  I  feel  that  the  biggest 
drawbacks  are:  **  The  entire  Basic  variables  area 
must  be  saved,  as  Individual  arrays  cannot  be 
saved,  **  The  system  is  not  compatl bl e  w 1 th 
Spectrum  programs,  **  There  Is  limited  directory 
space.  The  array  probi em  can  be  worked  around 
rather  easily,  however,  the  Spectrum  compatibility 
has  been  longed  for  by  the  users.  The  FD-68  will 
only  recognize  32  program  titles,  at  this  time,  I 
understand  the  directory  space  has  been  Increased 
however,  I  have  not  received  my  latest  EPROM 
up-date. 

The  real  problem  with  the  deficiencies  Is  the 

long  delay  between  updates  (Spectrum  capatablllty 
was  to  be  completed  two  weeks  after  the  5/87 
Sinclair  Mini-fest),  The  updates  are  sent  from 
Aerco  in  a  new  ROM.  There  is  a  small  fee  ($5,00 
for  the  last  update  I  received)  for  this  and  the 
old  ROM  Is  returned  to  Aerco  to  be  recycled  for 
the  next  update.  Also,  your  ROM  can  be 
reprograrraned  at  any  time.  If  you  make  changes  In 
your  system  configuration.  The  Basic  FD-68  system 
allows  saving  of  Basic  programs,  binary  memory 
images  (code),  the  entire  variables  area  (with  or 
without  a  Basic  program)  and  SCREENS' s.  There  Is 
also  the  capability  of  running  an  AROS  program, 
from  disk,  in  the  dock  bank!  Provision  has  been 
made  for  the  future  addition  of  numeric  arrays 
(.DAT),    character    arrays  (.CHR)  and  LROS  program 


(.LRO)  extensions. 

There  Is  a  special  extension  (.BUT)  that 
allows  entry  Into  a  very  nice  Implementation  of 
CP/M,  called  RP/M.  CP/M  provides  an  entirely  new, 
to  Sinclair  users,  operating  system.  There  Is  a 
wide  range  of  public  domain  and  commercial 
applications  packages  available  to  us  under  CP/M. 
More  on  this  in  future  issues.  If  there  is  a 
request  for  It.  Each  disk  can  store  one  autostart 
program  by  naming  It  'Boot.bas'  which  runs  upon 
turning  on  the  computer,  with  the  disk  In  drive  A. 
I  usually  place  a  program  such  as  M-Scrlpt  or  Zeus 
on  a  disk  as  the  boot  program,  I  then  use  the 
rest  of  that  disk  for  f I les  that  the  Boot  program 
uses.  All  of  my  general  purpose  disks  have  a 
special  Boot  program  I  wrote  that  sets -up  the 
system  variables  to  my  taste,  catalogs  the  disk 
and  loads  the  files  I  Indicate,  This  has  proven  to 
be  a  very  efficient  procedure, 

I  cannot  say  enough  good  things  about  the 
FD-68,  I  looked  at  the  Ollger  and  Zebra  systems 
when  I  was  shopping  for  a  disk  system  and  I  chose 
the  Aerco  for  the  above  reasons,  I  feel  that  It 
provides  the  widest  range  of  options  (Though  I 
must  admit  that  I  do  like  the  Zebra  tree 
structure).  It  Is  a  good  value  and  a  must  have. 
I  since  looked  at  the  Larken  system.  Larken  has 
some  unique  features  but,  I  am  not  convinced  to 
change.  In  short,  the  Aerco  FD-68  provides  many 
unique  features. 

Source:  AERCO,  PO-Box  18093,  Austin,  TX 
78760.    Send  SASE  for  literature  and  prices. 

Author  Prof  I  I e 

Mr,  Syd  Wyncoop  works  with  the  J.  1.  Case  Co. 
of  Portland,  Oregon,  manufacturing  Farm  and 
Construction  Equipment  (How  unique!  An  American 
Manufacturer!).  A  Boy  Scout  leader,  and  member  of 
the  Executive  Committee  of  St.  Therese  School,  Syd 
Is  Involved  but  finds  time  to  teach  Machine  Code 
to  the  Portland  SIG  group  and  hold  off  Ice  as 
Chairman  of  CCATS,  one  of  the  most  active  Timex 
User  Groups.  Syd  bought  his  first  computer,  a 
TS-1000,  to  acquaint  his  two  boys  with  computers. 
Then  he  had  to  teach  himself  in  order  to  be  the 
teacher.  Now  he  is  the  Guru  of  the  Portland  area 
user  groups.  We  UP-DATE' rs  encourage  Syd  to 
continue  covering  the  Aerco  FD-68  and  CP/M,  as 
well  as  sharing  his  programs  and  Utilities, 
SALUTE! 


TIXEX  TECHNICAL  DATA 


Timx  TECHSICAL  DATA 


+5V 
f  CS6 


eOMPOHENT  SIDE  jO    p     O  _^ 

^  *1  ^  \  \  \  \  ^1  *1  ^1  "1  *i  \  \  '^1  "1  °i 


TS  tooo  couTAnau  tmimo  k  oiFreneNT) 


S      itopfe  '  120pf1-  w  expansion 


DO  NOT  SCALE  DRAWING 

OMN  N  PARSONS 


T-3 


OAII  FEB  84 


TIMEX 


23. 

W0MX3 

13S3U 
IIVH 

Bt)«01 


r/jra'  TECHNICAL  DATA 


r-4 


IHI— RES  FLPXir  J  iriE I 


DISCOVER     ft     tME:M     r>  I  MEINJS  I  OIMflDDRESS: 


:20<£>0     COMF^LJ-r  I  IMC5  ! 


Just  look  at  all  o-f  the  "d1  ot-a-bit  i  ti  es"  i 

1520  is  both  a  hi-res  plotter  AND  a  printer. 

1520  is  compact-slightly   larger   than   a  2040. 

High  quality  ALPS  made  platter  (nechanism. 

4  color  plotting;   black,   blue,   green,   &  red. 

4  character  sizes:    10,   20,    40,    and  80  c.p.l. 

16  selectable  dashed  line  sizes. 

90  degree  character  rotation  possible. 

479   "x"  step  /  +-998  "y"  step  plotting  area. 

Extra  paper  &  pens  avail,   at  RADIO  SHACK. 

Quality  PC  board  with  plate-through  holes, 

"LPRINT"   commands  control   plotter  functions. 

Expanding  variety  a-f   software  -for  the  I/F. 

1520  available  8  TOYS-R-US  stores  for  «29.95. 

Write  -for  more  in-fomation  and  sample  plot. 


QUflHIlTY 

DESCRIPTION 

PRICE  EACH 

TOTflL 

iirt  Board  i/cissette 

Ml. 75  ppd 

Coiplfte  Kit  »/ci5sette 

IZ0.95  ppd 

Asseiiilid/tcsted  n/cass. 

I30.95  ppd 

Keyed  Edqe  Connector-If 
purctijsfd  Kith  hirdnare 

$4.75  ppd 

SCREEN-IO-PLDTTER  util. 

t8.92  ppd 

PIC-PLOT  utility 

$8.95  ppd 

BAWOIFIC  utility 

»8.?5  ppd 

1  srt/order 

ens/ 1320  patch  kit 
COLORED  REPLACEMENT  PENS 

18.95  ppd 
t2.00  ppd 

TOTAL  ENCLOSED)) 

ccun  Ai  1  nancBC  rn. 

John  Hcmchael,  1710  Palier  Or.,  Larui«,  UY  82070 


HHER&  BQUER5  PROUDLY  PRESEhTSH 

r   


Based  on  a  Popular  TU  Game  fkm 


STARRING  LOUELY  HI55  BRNNfl  BRITE 
The  Ultimate  Uord  Game. 


The    all    new    MONE'y    MACHINE  IX 
r-1  e  uj  theme!! 

Fantastic  Family  Fun!! 

••BtHNNR"    turning    the  Letters 
Hundreds    of    NEU  PuzzLes- 
Solo    or    2    or    3    P  L  a  y  e  r  s 


H  L  L    t.  h  i  ^    for  only 
T/S  2068   jfc.i  j-s.-S 
Cassette   IplCiUU  (US) 
I  ri    I.  u  d  e  s    Po  £  t  a  g  e  -  V  i  a    1st  Class 


HERB  BOUER5,      Sr - 
25SS  Uoodshire  Circle 
Chesapeake,   Ufl  23323 
Phone:    S04.  4.S7-5924- 


SSOFTE  ________ 

H-;3'f;'H  i  ficcufdtt:  fiDsiness,  umtmrn  and  ficcounting  y'tumt 


Don't  Fi is  Yuyr  196? 


LJ  M"T"  X  L_ 


ouiK-idio , 

INCLUDES:  Form  1040:  104.0fl  i:  EZ  , 
5ch,  P.,  B  &  P  *  Forms  2106,:  2441 
Hutomatic  CaLcLflation  .incom£_iax 
Liability, Chi  Id  Care  Credit 
able  Social  Security:  Earned  in- 
come  Credit    ^Multiple    i-i-2   &  1099 

Fntru   »  2040  Compatible   ^  More  

tiPi  muil  irmiftf  to  all  Official  IntfernBl  gKUfeno^  r^m  ± 


Only    429  ^  50 


iafi.  Si  D€lii!i;rM 


Janyary  5,  ISSS  ^mu  ?iLL  rtcdMs  a^=g^  ^if  chsrae  "THE  ofm 
Tfis  Lhm  an.i  viiii",  jhi:  pr-M=aM  ha:  han  rtnits  in  TIHE  ntjisiis, 

sr==j  i:  kiny  iis^.i  all  mt\  the  iinite.j  5tBte3=  IsHEDIhTE  jHiPMEni 
O  F?  if  !?■■!]  haut  alrta.i!4  purchastd  "THE  Ofm  thx  lhI"  fr-is 
^mu  Mau  deduct  i7,m  frns  the  piirchase  price  shich  ¥ill  aiue  m^u 

5  fUU  Cr^jjt  f^j  thr  nfiqiliSi.  !>i|rChti^^>  

G  i_J  «  w       r-4"T"  ^  ^  :   If  qoy  -ujt  dsm  Sfi'i  fine 

r  penaltu  as  a  SigECT  KSET  cf  iisifK!  "l|»IK-iB40".  I  *ill  psm 


UP-DATE  ISSUE  DISKETTES 


The  software  and  utilities  presented  In  each  Issue  of  UP-DATE  are  consolodated  and  offered  on 
disk.  These  are  all  NEW  programs  having  a  combined  value  of  at  least  $50.00.  The  authors  of  the 
titles  share  In  the  sales  proceeds  of  the  Issue  Diskette.  As  you  add  these  useful  programs  to  your 
library  you  are  supporting  your  Up-Date  magazine  and  the  authors  who  bring  you  these  useful 
programs. 

Disk  System  Support:  By  the  time  you  read  this  UP-DATE  should  have  support  capability  for 
LARKEN,  AERCO  FD-68,  RAMEX,  and  0LI6ER  SAFE,  disk  systems.  Disk  Drive  support  Includes;  3"  Amdlsk, 
5  1/4"  DS/DD  40  or  80  track,  and  5  1/4"  SS/DD  40  track.  Due  to  high  cost  and  scarcity,  orders  for 
3"  Affldlsk  programs  must  be  accompanied  by  a  3"  diskette  for  dubbing. 


JANUARY  88  DISKETTE 


OCTOBER  87  DISKETTE 


The  January  disk  contains:  MTERM 
DATA  CAPTURE,  by  George  Chambers: 
DOSOEX  File  Indexer,  by  Bob  Hart ung: 
PURITY,  by  Up-DATE:  LIST  LOOKER,  by 
Up-DQte:  EXTRA  MEMORY  UTILITIES,  by 
Up-Date.    PRICE:    $19.00  postpaid. 


The  October  87  disk  contains:  MAIL 
MERGE,  by  Up-Oate:  J-lfTILITIES,  by 
Up-DATE:  A  Menagerl  e  of  20  Sound  and 
Visual       utilities:  A     Group  of 

Programming  Tips.  Mall  Merge  Is  a  major 
software.    PRICE  $16.00  postpaid. 


Special  offer:  Get  both 
through  UP-DATE,  address  on  cover. 


January   and    October  Issue  Diskettes  for  $32.00  postpaid. 


Order 


»  * 
Smart  Text  Disk 

The  Smart  Text  programs  are  being 
prepalred  In  LARKEN,  AERCO  FD-68,  and 
RAMEX,  disk  formats.  Disk  drive  formats 
are:  3"  Amdlsk,  5  1/4"  DS/DD  40  or  80 
Track,  or  5  1/4"  SS/DD  40  Track.  Due  fo 
the  o(»t  and  scarcity  of  3"  diskettes, 
orders  for  3"  disk  must  be  accompanied 
by  two  3"  diskettes  for  dubbing.  Each 
diskette  has  an  additional  software  for 
use  with  the  Zebra  OS-64  cartridge  for 
64  column  display.  Standard  price  for 
ail  Is  $26.00  (postpaid  US  and  Canada). 
Order  through  UP-DATE.  Satisfaction 
Guaranteed. 


Smart  Text  Cassette 

The  Cassette  version  of  Smart  Text 
has  many  of  the  airtomatic  data 
processing  and  printing  functions  of  the 
disk  drive  software,  and  it  includes  the 
program  for  use  with  the  Zebra  OS-64 
Cartridge.  This  software  Is  available 
only  for  use  with  Aer<x>  or  Ollger 
Centron  I  cs  Para  Mel  I  nterf  ace.  As 
progranmed,  ST  works  with  EPSON 
compatable  printers.  Program  line 
changes  are  required  for  others.  80 
page  manual  includes  Instructions.  The 
TS-2040  printer  Is  also  supported. 
Price  $26.00  (Pbstpaid).  Order  through 
»    IF-DATE.    Satisfaction  Guaranteed.  » 


Continued  from  preceeding  page. 


vs«r=VoUage  standing  vave  ratio 

vtYm=Vacuuin  tube  volt  neter 

VU=Voluiiie  unit 

wb=yide  band 

wdg=Winding 

tfhdiii=lilatt  hour  aeter 

w!n=Uatt[iieter 

wv=yorking  voltage 

)(=Reactance 

'i(l=InductiYe  Reactance 
2a=Zero  adjusted,  \ 


vt*Vacuua  tube 

VQX=Voice  operated  Iransnitter  keyer 
w=Uide 

«d=yatt  denand  aeler 
wg=yaveguide!  vire  gage 
«I=yavelenglh 
«rg=liliring 
tfv=yire  wound 
Xc=CapacitiYe  reactance 
y=Adi»ittance 
Z=Ii8pedance;  Zone 


SEMICONDUCTOR 

The  following  abbreviations  h; 
semiconductor  devices. 

a— Alpha.  Cpmmon-base  short-circuit 
current  gain 

B,  b— Base  electrode  for  units  employing 
a  single  base 

bi,  b2.  etc.— Base  electrodes  for  more 

than  one  base 
B — Beta.  Common-emitter  short-circuit 

current  gain 
BVr— Breakdown  voltage,  reverse 

C,  c— Collector  electrode 

Ceb— Interterminal  capacitance,  collec- 
tor-to-base 

C„— -Interterminal  capacitance,  collec- 
tor-to-emitter 

d, — Drain-source  capacitance,  with 
gate  connected  to  the  guard  terminal  of 
a  three-terminal  bridge 

CiM, — Open-circuit  drain-source  capaci- 
tance 

Cju — Drain-substrate  capacitance,  with 
gate  and  source  connected  to  the  guard 
terminal  of  a  three-terminal  bridge 

C.b — Interterminal  capacitance,  emit- 
ter-to-base 

C,do— Open-circuit  gate-drain  capaci- 
tance 

Cnp— Open-circuit  gate-source  capaci- 
tance 

C„„— Open-circuit  input  capacitance 

(common  base) 
Cjb,— Short-circuit  input  capacitance 

(common  base) 
Cieo — Open-circuit  input  capacitance 

(common  emitter) 
Ci„— Short-circuit  input  capacitance 

(common  emitter) 
C. — Gate-source  capacitance,  with 

drain  short-circuited  to  source 
C,^— Open-circuit  output  capacitance 

(common  base) 
Cb.— Short-circuit  output  capacitance 

(common  base) 
Co<u— Short-circuit  output  capacitance 

(gate-drain  short-circuited  to  ac) 


ABBREVIATIONS 

ave  been  adopted  for  use  with 

— Open-circuit  output  capacitance 
(common  emitter) 

Co*.— Short-circuit  output  capacitance 
(common  emitter) 

Co.,— Drain-source  capacitance,  with 
gate  short-circuited  to  source 

Crb.— Short-circuit  reverse  transfer  ca- 
pacitance (common  base) 

Cr«— Short-circuit  reverse  transfer  ca- 
pacitance (common  collector) 

Ct«— Short-circuit  reverse  transfer  ca- 
pacitance (common  emitter) 

 Drain-gate  capacitance,  with  the 

source  connected  to  the  guard  terminal 
of  a  three-terminal  bridge 

D — Duty  cycle 

d — Damping  coefficient 

E,  e — Emitter  electrode 

fhn,— Small-signal,  short-circuit, 
forward-current,  transfer-ratio  cutoff 
frequency  (common  base) 

fh,c— Small-signal,  short-circuit, 
forward-current,  transfer-ratio  cutoff 
frequency  (common  collector) 

fh,.— Small-signal,  short-circuit, 
forward-current,  transfer-ratio  cutoff 
frequency  (common  emitter) 

fmAi— Maximum  frequency  of  oscillation 
— ^Transition  frequency 

— Static  transconductance  (common 
base) 

 Small-signal  transconductance 

(common  base) 

gy^Q  Static  transconducUnce  (common 

collector) 

g„c— Small-signal  transconductance 

(common  collector) 
gjjg  Static  transconducUnce  (common 

emitter) 

g„,— Small-signal  transconductance 

(common  emitter) 
Ge — Germanium 

GpB— -Large-signal  average  power  gain 
(common  base) 


Gpb— Small-signal  average  power  gain 

(common  base) 
Gpc— Large-signal  average  power  gain 

(common  collector) 
Gpc— Small-signal  average  power  gain 

(common  collector) 
(JpE— Large-signal  average  power  gain 

(common  emitter) 
Gp,— Small-signal  average  power  gain 

(common  emitter) 
Gpr— Small-signal  insertion  power  gain, 

common  gate 
Gp,— Small-signal  insertion  power  gain, 

common  source 
Gtb — Large-signal  transducer  power 

gain  (common  base) 
Gu, — Small-signal  transducer  power  gain 

(common  base) 
Gtc — Large-signal  transducer  power 

gain  (common  collector) 
Gu— Small-signal  transducer  power  gain 

(common  collector) 
Gte— Large-signal  transducer  power 

gain  (common  emitter) 
Gu — Small-signal  transducer  power  gain 

(common  emitter) 
G„— Small-signal  transducer  power 

gain,  common  gate 
G„ — Small-signal  transducer  power 

gain,  common  source 
hrs— SUtic  value  of  the  forward-current 

transfer  ratio  (common  base) 
hfb— Small-signal,  short-circuit, 

forward-current  transfer  ratio  (com- 
mon base) 
Hpc— Static  value  of  the  forward-current 

transfer  ratio  (common  collector) 
hfc— Small-signal,  short-circuit, 

forward-current  transfer  ratio  (com- 
mon collector) 
hj-E — Static  value  of  the  forward-current 

transfer  ratio  (common  emitter) 
hf,— Small-signal,  short-circuit, 

forward-current  transfer  ratio  (com- 
mon emitter) 
hrEL— Inherent  large-signal,  forward- 
current  transfer  ratio 
hiB — Static  value  of  the  input  resistance 

(common  base) 

Continued  on  next  page. 


Z-3 


Continued  froi  preceeding  page 


hib — Small-signal  value  of  short-circuit 
input  impedance  (common  base) 

hic — Static  value  of  the  input  resistance 
(common  collector) 

hit — Small-signal  value  of  short-circuit 
input  impedance  (common  collector) 

h,g— -Static  value  of  the  input  resistance 
(common  emitter) 

h,.— Small-signal  value  of  short-circuit 
input  impedance  (common  emitter) 

h,,  (real)— Real  part  of  small-signal 
value  of  short-circuit  input  impedance 
(common  emitter) 

hoB — Static  value  of  open-circuit  output 
conductance  (common  base) 
— Small-signal  value  of  open-circuit 
output  admittance  (common  base) 

hoc — Static  value  of  open-circuit  output 
conductance  (common  collector) 
— Small-signal  value  of  open-circuit 
output  admittance  (common  collector) 

hoE— Static  value  of  open-circuit  output 
conductance  (common  emitter) 

h«,— Small-signal  value  of  open-circuit 
output  admittance  (common  emitter) 

hrt— Small-signal  value  of  open-circuit, 
reverse-voltage  transfer  ratio  (com- 
mon base) 

h„ — Small-signal  value  of  open-circ\iit, 
reverse-voltage  transfer  ratio  (com- 
mon collector) 

h„— Small-signal  value  of  open-circuit, 
reverse-voltage  transfer  ratio  (com- 
mon emitter) 

I,  i— Intrinsic  region  of  a  device  (where 
neither  holes  nor  electrons  predomi- 
nate) 

Ig — Base  current  (dc) 
lb — Base  current  (rms) 
ia— Base  current  (instantaneous) 
Ibo— Breakover  current,  direct 
Ic — Collector  current  (dc) 
Ic— Collector  current  (rms) 
i<; — Collector  current  (instantaneous) 
1^30 — Current  cutoff  current  (dc),  emit- 
ter open 

I^j.Q — Collector  cutoff  current  (dc),  base 
open 

I^j.R_Collector  cutoff  current  (dc),  with 
specified  resistance  between  base  and 
emitter. 

1^-5.3 — Collector  cutoff  current  (dc),  with 
base  short-circuited  to  emitter 

— Collector  cutoff  current  with  spec- 
ified voltage  between  base  and  emitter 
Collector  current  (dc),  with  speci- 
fied circuit  between  base  and  emitter 

l^Q__Collector  leakage  current  (cutoff 
current). 

Id — Drain  current  (dc) 

I(,(^ff,_Drain  cutoff  current 

logR^Drain  current,  (external)  gate- 
source  resistance  specified 

Iogg_Drain  current,  zero  gate  voltage 

Iog3(_Drain  current,  gate-source  condi- 
tion specified 


Ie — Emitter  current  (dc) 
U — Emitter  current  (rms) 
Ie— Emitter  current  (instantaneous) 
Iebo — Emitter  cutoff  current  (dc),  col- 
lector open 
lEC(of.) — Emitter-collector  offset  cxirrent 
lgcg_Emitter  cutoff  current  (dc),  base 

short-circuited  to  collector 
lg,j.j_Emitter  cutoff  current  (double- 
emitter  transistors) 
If — Forward  current  (dc) 
I, — Forward  current,  alternating  compo- 
nent 

i^, — Forward  current  (instantaneous) 
I —Forward  current,  dc  value  with 

alternating  component 
— Forward  gate  current  (direct) 
IpQ^—Peak  forward  gate  current 
Ip^_Forward  current,  peak  total  value 
I f.,ov)— Forward  current,  overload 
Ip.(j„_Forward  current,  peak  repetitive 
Ipg„_Forward  current,  peak  surge 
Ic — Gate  current,  dc 
IcF — Forward  gate  current 
IcR— Reverse  gate  current 
Ih— Holding  current,  direct 
Ii— Infection-point  current 
Iq — Average  output  rectified  current 
I^y—Overload  on-sUte  current 
Ip — Peak-point  current  (double-base 

transistor) 
I„ — Reverse  current  (dc) 
Ir— Alternating  component  of  reverse 

current  (rms  value) 
Ir— Reverse  current  (instantaneous) 
iwREo— Reverse  recovery  current 
Irrm— Peak  reverse  current,  repetitive 
Ircrms)— Reverse  current,  total  rms 

value 
Ig — Source  current 

Igjjg—Source  current,  zero  gate  voltage 
Igj33f_Source  current,  gate-drain  condi- 
tion specified 

Peak  on-state  current,  repetitive 
I„„_On-state  current  surge  (nonrepet- 
itive) 

lu — Substate  current 

Iv — Valley-point  current  (double-base 
transistor) 

Iz — Regulator  current,  reference  cur- 
rent (dc) 

— ^Regulator  current,  reference  cur- 
rent (dc  near  breakdown  knee) 

l2j,_Regulator  current,  reference  cur- 
rent (dc  maximum  rated  current) 

Ko— Thermal  derating  factor 

Le — Conversion  loss 

M — Figure  of  merit 

N,  n— Region  of  a  device  where  electrons 
are  the  majority  carriers 

NF— Noise  figure 

NF^— Overall  noise  figure 

NRo — Output  noise  ratio 

P,  p — Region  of  a  device  where  holes  are 
the  majority  carriers 


Pbe — ^ToUl  power  input  (dc  or  average) 

to  the  base  electrode  vnth  respect  to 

the  emitter  electrode 
Pbe — Total  power  input  (instantaneous) 

to  the  base  electrode  with  respect  to 

the  emitter  electrode 
p^,g__Total  power  input  (dc  or  averge)  to 

the  collector  electrode  with  respect  to 

the  base  electrode 
PcB — ^Total  power  input  (instantaneous) 

to  the  collector  electrode  with  respect 

to  the  base  electrode 
PcE — ^Total  power  input  (dc  or  average) 

to  the  collector  electrode  with  respect 

to  the  emitter  electrode 
p^jg — Total  power  input  (instantaneous) 

to  the  collector  electrode  with  respect 

to  the  emitter  electrode 
Ppg — Drain-source  power  dissipation 
PgB — ^Total  power  input  (dc  or  average) 

to  the  enutter  electrode  with  respect  to 

the  base  electrode 
pgg—Total  power  input  (instantaneous) 

to  the  emitter  electrode  with  respect  to 

the  base  electrode 
Pj — Forward  power  loss  (dc) 
Pi — Forward  power  loss  (instantaneous) 
Pj.„ — Forward  power  loss,  total  peak 

value 

PiB — ^Large-signal  input  power  (common 
base) 

Pib— Small-signal  input  power  (common 
base) 

Pic— Large-signal  input  power  (common 
collector) 

P,c — Small-signal  input  power  (common 
collector) 

Pjj; — Large-signal  input  power  (common 
emitter) 

Pu — Small-signal  input  power  (common 
emitter) 

Po3-_Large-8ignal  output  power  (com- 
mon base) 

P„b— Small-signal  output  power  (com- 
mon base) 

— Large-signal  output  power  (com- 
mon collector) 

Poc — Small-signal  output  power  (com- 
mon collector) 

pQg — Large-signal  output  power  (com- 
mon emitter) 

Po,— Small-signal  output  power  (com- 
mon emitter) 

Pr — ^Reverse  power  loss 

Pr — Reverse  power  loss  (instantaneous) 

PsM— Surge  nonrepetitive  power 

p,j — ^Total  power  input  (dc  or  average)  to 
all  electrodes 

Pi — ^Total  power  input  (instantaneous)  to 
all  electrodes 

Q,— Recovered  charge  (stored  charge) 

Rb— External  base  resistance 

rRB— Resistance  between  two  bases, 
emitter  zero  (double-base  transistor) 

r^'Ce — Collector-base  time  constant 

Continued  on  next  page. 


Z-4 


Tel ecomputi n 

MTERM  II 

Modifications  for  the  LARKEN  DD  System 
by  G.  Chambers 
14  Ri chore  Court 
Scarborough.  Ont  MIK  2Y1  CANADA 

When  I  started  to  put  MTERM  II  onto  the  LARKEN 
system  I  had  some  ideas  of  what  I  wanted  to  do. 
Primarily  I  wanted  to  be  able  to  make  disk  saves  of 
the  buffer  at  any  time  while  on-line.  I  soon  found 
that  as  MTERM  was  constituted,  this  was  impractical. 
MTERM  as  presently  constituted  cleared  out  any  BASIC 
program  and  variables  that  were  initial-  ly  present. 
Thus  my  idea  of  having  a  BASIC  program  ready  to 
perform  the  disk-save  immediately  upon  an  exit  from 
MTERM  was  not  possible.  I  have  overcome  this  by  a  few 
judicious  POKES  into  MTERM,  plus  some  unique  Ideas  in 
a  companion  BASIC  program.  The  following  notes 
describe  the  changes  and  their  purpose. 

I  found  that  one  of  the  first  things  that  MTERM 
does  upon  initialisation  is  to  look  at  the  system 
variables  VARS  and  PROG.  It  uses  these  values  to  clear 
out  the  BASIC  program  and  variables,  also  to  help  in 
determining  the  ongoing  buffer  status. 

Bytes  which  do  this  are  located  at  54035/37, 
54043/45,  and  61165/66.  I  modified  the  program  by 
POKEing  new  values  Into  several  MTERM  addresses,  as 
follows. 

54034,33:  54035,12:  54036,123 

54043,33:  54044,12:  54045,123 

54523  to  54537,  POKE  all  zero's  in  these  addresses. 

The  first  six  POKEs  cause  MTERM  to  set  the  start  of 
the  buffer  space.  This  figure  could  be  set  anywhere; 
it  Is  simply  a  trade-off  between  buffer  size  and  BASIC 
program  size.  Initially,  I  considered  having  MTERM 
look  at  the  system  variable  E-LINE,  however  I  found 
that  this  became  corrupted  whenever  I  entered  a  direct 
command.  I  fastened  on  an  arbitrary  value  of  31500 
since  I  felt  that  with  a  disk-save  routine  in  place, 
maximizing  buffer  space  was  less  important  than  haying 
sufficient  space  for  the  BASIC  program.  This  sizing 
will  allow  a  LARKEN-modified  LOADER  V  to  be  used. 

I  found  that  with  this,  even  though  the  BASIC 
remained  untouched,  the  program  variables  were  being 
wiped  out.  Looking  around,  I  found  a  block  of  MTERM 
code  (54523/54537)  that  appeared  to  do  this.  I  simply 
wiped  it  out  with  no  apparent  111 -effect. 

Addresses  51164/65  store  the  used/free  buffer 
status.  They  are  loaded  with  the  values  found  in 
addresses  54044/45  (i.e.  the  starting  address  of  the 
buffer)  at  initialisation,  and  are  incremented  as  the 
buffer  fills.  I  have  made  use  of  this  in  LINE  22  of 
the  BASIC  program  to  determine  the  size  of  the  block 
of  data  to  be  saved. 


January  1988 


These  addresses  61164/65  can  be  useful  in  another 
way.  If,  for  example,  you  inadvertently  erase  the 
buffer  while  in  the  Buffer  Menu  mode  It  is  possible  to 
restore  it.  Option  4  in  the  menu  allows  you  to  insert 
an  arbitrary  buffer  length.  This  will  change  the 
"buffer  used/free"  pointer  in  MTERM  so  that  one  can 
view  and/or  save  the  buffer. 

These  addresses  61164/65  can  be  useful  in  another 
way.  If,  for  example,  you  inadvertently  erase  the 
buffer  while  in  the  Buffer  Menu  mode  it  is  possible  to 
restore  it  by  POKEing  address  61165  with  a  value 
between  124  and  211.  The  buffer  itself  has  not  been 
erased,  simply  the  pointer,  and  this  POKE  creates  an 
arbitrarily-sized  buffer. 

There  a  number  of  features  about  the  program  which 
are  worthy  of  explanation.  LINE  100  contains  POKEs  to 
addresses  23662/63.  It's  purpose  is  this.  Usually,  if 
you  execute  a  RAND  USR  from  a  BASIC  program  and 
return,  the  BASIC  program  will  continue  from  where  yoU 
left  it.  However  with  MTERM  this  is  not  the  case.  You 
wilVcome  out  to  an  OK  report  at  the  bottom  of  the 
screen.  I  was  unable  to  find  the  MTERM  code  which 
caused  this.  Falling  that,  I  solved  the  dilemma  by 
POKEing  a  number  into  the  system  variable  OLDPPC 
(address  23662/63)  corresponding  to  the  LINE  number 
where  I  wish  to  continue  in  the  BASIC  program.  Then, 
when  I  exit  from  MTERM  it  is  simply  necessary  to  press 
the  C  key  (CONT),  and  the  ENTER  key,  to  find  myself 
back  into  the  running  BASIC  program  at  the  spot  where 
I  want  to  be. 

The  BASIC  has  a  couple  of  other  things  about  it 
which  are  of  interest.  If  one  accesses  MTERM  by  a  RANP 
USR  54016  the  program  is  reinitalized  with  the  buffer 
set  as  cleared.  However,  if  It  is  desired  to  re-enter 
MTERM  without  disturbing  the  state  of  the  buffer  then 
one  can  use  RAND  USR  54089.  This  option  has  been 
included  In  the  BASIC  at  LINES  30  and  32. 

There  probably  will  be  occasions  when  several 
successive  buffer  SAVES  will  be  required  during  the 
same  download.  The  BASIC  contains  an  arrangerent 
whereby  the  name  of  the  saved  buffer  remains  the  same 
while  it's  suffix  is  incremented.  Where  the  initial 
SAVE  has  a  suffix  of  "Ca",  the  suffix  in  subsequent 
SAVES  will  be  Incremented  as  "Cb%  "Cc",  etc. 

Although  we  have  shown  an  original  BASIC  program 
here  for  use  with  MTERM  there  Is  every  reasdn  to  imbecJ 
these  program  ideas  into  LOADER  IV  or  LOADER  V.  They 
will  work  there  in  the  same  way,  and  provide  for  the 
additional  features  of  these  programs. 

Also,  even  without  a  disk  system,  these  features  may 
prove  to  have  some  merit,  and  are  worth  considering. 


Telecomputing 


January  1988 


In  adapting  this  program  you  will  have  to  watch 
carefully  when  you  tamper  with  the  makeup  of  LINES  20 
21,  32,  and  100,  What  you  are  trying  to  do  Is  direct 
the  return  of  the  computer  to  the  appropriate  line  anrf 
statement  number,  and  this  can  be  tricky. 
Note  that  the  program  Is  designed  to  be   used    In  the 
LARKEN  AUTOSTART  mode.  That  1s,  you  should  save  It  to 
disk  with  a  GOTO  3. 


0>REM  Modified  MTERM  II  for 
the  LARKEN  disk  system 
by  G,  Chambers 

2  GO  TO  VAL  "9" 

4  CLEAR  VAL  "31499»»:  RANDOMIZ 
E  USR  VAL  "102»» 

B  CLEAR  VAL  "54015":  RANDOMIZ 
E  USR  VAL  "100":  OPEN  #4,"dd" 

7  PRINT  #4:  LOAD  "mterm2.C1"C 

ODE 

9  LET  g$="buffer" 
10  LET  g=:VAL  "150":   LET  q=VAL 
"97":   LET  f=VAL  "20":  LET  o=NOT 

PI:  LET  i=PI/PI:  BORDER  o:  PAP 
ER  o:   INK  VAL  "7":  CLS  :  PRINT 
TAB  VAL  "10";"MTERM  II"«»"TAB 
PI'i!PI;"MAIN  MENU: "»♦» TAB  PI+PI; 
"D  RUN  MTERM" "TAB  PI+PI; "2)  L 
DAD  BUFFER"* » TAB  PI+PI; "3)  NAME 

A  BUFFER  FILE"»»TAB  PI+PI ;"4) 
RESTORE  BUFFER"* »TAB  PI+PI;"5) 
SCAN  DISK  FILE"::   GO  SUB  VAL  "1 
3":   IF  LEN  z$<>i  OR  z$<"1"  OR  z 
$>"5"  THEN  RUN 

12  GO  TO  VAL  z$*f 

13  INPUT  "Your  Choice?  ";  LINE 
z$:  RETURN 

20  GO  SUB  g:  RANDOMIZE  USR  VAL 
"54016" 

21  CLS  :  CLS  :  LET  q$=CHR$  q: 
PRINT  AT  VAL  "10", NOT  PI j "Save 
buffer  to  disl<?(Y/N)"' »"File  Na 
me  is  ";  FLASH  PI/PI ; g$+".C"+q£ 
:  FLASH  o:  PAUSE  o:  IF  INKEY$=" 
n"  OR  INKEY$="N"  THEN  GO  TO  VA 
L  "24«» 

22  LET  n=PEEK  VAL  "61164"+VAL 
"256"«PEEK  VAL  "61165"-VAL  "315 

00»' 

23  LET  qS=CHR$  q:   LET  q=q+PI/P 
I:   PRINT  #4:   SAVE  g$+" .C"+q$COD 
E  VAL  "31500", n 

24  IF  INKEY$<>""  THEN  GO  TO  V 
AL  "24" 


25  CLS   :   PRINT  AT  VAL  "10", NOT 
PI; "Press  ENTER  if  you  wish  to 
clear  the  buf f er" ' "Otherw 
ise  press  any  other  key":  PAUSE 
o 

30  IF  CODE  INKEY$=VAL  "13"  THE 
N     GO  TO  VAL  "20" 

32  GO  SUB  g:  RANDOMIZE  USR  VAL 
"54089" 

40  CLS   :   PRINT  TAB  9;"LARKEN/M 
TERM  II"» '"Insert  disk  con 
taining  program     to  be  loaded  S. 

press  a  key":  PAUSE  a:  CLS   :  P 
R1.\'T  #4:   CAT  "",  :   PRINT  ""Full 
name  of  File  (9  charS ) :  ";:  IN 
PUT  "Filename?  ";  LINE  n$ 

44  PRINT  #4:   LOAD  nSCODE  VAL  " 
31500" 

48  INPUT  "Enter  the  file  lengt 
h"»"  (approx.  if  not  known)";!: 
LET  1=1+VAL  "31500":   IF  1>VAL 
"53966"  THEN     LET  1=VAL  "53966" 

50  POKE  VAL  "611B4",1-25B*CINT 
(1/256)):  POKE  VAL  "61 165", INT 
(1/256) 

55  CLS   :   GO  TO  VAL  "32" 

60  CLS   :   INPUT  "Buffer  Name  (6 
Chars)  ";g$:  GO  TO  VAL  "10" 

80  IF  Z$="4"  THEN     GO  TO  48 
100  CLS   :   PRINT  AT  VAL  "17", NOT 
PI; "Enter  full  Disk  File  Name 
":   INPUT  g$ 
110  PRINT  #4:  PRINT  g$ 
115  GO  TO  10 

150  POKE  VAL  "23662", VAL  "21": 
POKE  VAL  "23663", NOT  PI:  RETURN 

COMMENTS:  An  old  "ZX'er  can  readily  recognize 
another  by  his  programming  style  whi ch  minimizes 
byte  waste.  <LEr  i=PI/PI>  saves  four  bytes  of 
memory  as  opposed  to  <LETi=1>.  George  Chambers 
started  computing  with  a  ZX-80  bacl<  in  1981, 
graduated  to  a  ZX-81,  and  then  to  his  TS-2068.  He 
chartered  the  Toronto  Timex  Club  in  1982  and  has 
served  in  an  executive  role  since.  He  fs  retired 
from  the  engineering  dept  of  Bell  Canada,  a  Cub 
Scout  Leader,  and  a  vol enteer  worker  for  the 
National  Institute  for  the  Blind.  About  the 
program:  I  have  tried  for  a  year  to  cut  into  MTERM 
II  and  make  it  dump  data  to  disk.  Now  George  has 
dude  it  where  I  failed.  SALUTE!  and  Thanks  George! 
Now  you  Oliger  or  Aerco  users:  The  line  numbers  to 
edit  and  change  to  your  disk  syntax  are:  6,  7,  27, 
40,  44,  and  100.  Also,  <RANDOMIZE  USR  100>  and 
<PRINT  '#4>  are  LARKEN  SYNTTAX  and  each  use  must  be 
deleted  for  other  disk  systems  or  cassette.  (Ed.) 


TS~2068  UP-DATE 
1317  Stratford  Ave,    Panama  City,    FL  32404 
<904  871  4513) 


CO^WUN  I  GATING  WITH  COMPUTERS 


Progress  wl  H  be.  the  break  through  during  this  decade. 


EDUCATION  &  REFERENCE 
(GO  REFERENCE) 


CompuServe  provides  educational 
all  ages  and  educators  at  all  levels. 


for  students  of 


For  Professionals 

Access  a  variety  of  curriculum  planning  resources.  Consult  proSies 
of  publishers  of  specialized  educational  materials.  Join  other 
educators  in  specialized  Forums 


Reference  and  Research  Tools 

Enjoy  instant  access  to  an  electronic  version  of  Grolier's  Acadeuac  : 
American  Encyclopedia.  Plus,  CompuServe's  IQuest  lets  you  adjess 
nearly  700  other  databases  from  business*  commerce,:  industry  and 
academia.  College  Press  Service  keeps  you  current  with  EducaSon 
News  Sendees. 


Career  Planning  and  Guidance 

The  College  Board  and  Peterson's  College  Databases  help  choose  ; 
a  college,  prepare  for  the  SAT,  plan  an  adult  student's  retum  to 
academia,  and  evaluate  strategies  for  securing  financial  aid. 

Support  Services  For  Special  Education 

A  resource  for  those  with  handicaps,  as  well  as  those  who  assists, 
train,  educate  or  employ  the  learning  disabled  and  the  vision,  r 
hearing  or  mobility  impaired 


Computer,  Telecom  Gear  Makers 


Countries 

PROJECTED  REVENUES 
U.S.  COMPUTER,  BUSINESS 
AND  TELECOMMUNICATIONS 

EQUIPMENT  INDUSTRY 

($  8i«on»):  V  :' 

t?oiMoprn"ar!hMr»^ 
aKreement  «ith  France  Tele- 

fcmwth  rule  of  9  'Z  percent  fitr 

^'^hra"?rfU«U<t»  KsdTii 
Mareniii   lCPRMU  under 

Equrpment        nicstions  ToW 
,986                        leaSS           174.92  3SeS7 
1987                        198  20           186.00  38420 

■  uld*  to"  iik  Brilhlhi  Trnri^^^^^ 
and  IVirtUKal. 

:  al  ia'^alrarlcetiiiiivehiiire  by  the 

1988  217.<<   '       200.98  41442 

1989  240  40           213.41  4SM1 

1990  »   258  69           223.83  48652 

Oirectorate  Ueneral  ofTelecom- 
operatinie  orxanixation. 

1991                      281.82          237.22  StSS* 
1996'                       443.37           311.48  7S*SS 

Where  ini  Go 

tlisrwilion  in  l9sir"Re»- 
enues  are  "^^^^^^  ff""  *>y 

Source:  Computer  i  BusioeM  |c^JlprTwol  _ 

Lisbon"  Po«UHrThr''d"r«l 
England-France  cable  will  be  a 

I.  from  tlss "ihilVrnt  m  1 SW7 
ia  »2I7.4  billion  in  IjIRH.  An 
ntimntfd  inalmr  in  telrcnm 
munic«tiona  indimtry  revrnueii 
from  flM  billion  lhi>  y«>r  to 

""-n.^'fbture''Ttlie  ciimpi.trr 

,h,n   in  populotion  demogro-     October  .toclt  miirkrt  CT»h  U,l 

TutMniitiair'anT  <^inln!n"uw    m "stimatedTm.rblKm^th^ 
bifth  rates  of  rml  ptmth  exper-    ywr  111  J  t2».T  billion  »  I9»7.  i 
tenord  in  the  pn.<"  U  added      /  BevMiw  frem,;!^ 

The  predictinni.  are  baaed  on    Mrvicee  are  ejpected  »  in- 
tr,.nd»  thnl  e«i»ted  before  the    crease  ta  $53  3  billion 

l^'SorrM^I^'»wt""ucli'link..l 

f(ul  will  lie  a  repeatere,!  ayatem 

Mbtt/a  per  fiber  pair,  one  of  the 
lareest-cnpacty  submarine 
links  in  service. 

Cable  Will 
Hook  Up  3 


FINANCIAL  TRANSACTION  SERVICES 
(GO  BANKING) 

Forward-thinking  full  service  banks  and  brokers  use 
CompuServe  as  an  electronic  gateway  for  out-of-town  or 
out-of-state  customers,  local  depositors,  and  investors. 
These  services  cater  to  consumers  who  prefer  to  serve 
themselves,  electronically.  No  lines.  No  crowds.  No  traffic. 
No  distractions. 


Banking 

•BSril<^?aiCGroSs''th^  country  offer  online  financial  and  information 
';ssr^it^SlSii|vh6^^^  and  businesses  can  review  transactions, 

ti^hi^fefrftind^y:  fiay  bills,  compare  current  interest  rates  and  even 
exchange  electronic  mail  with  bank  officers.  Millions  of  people  will 
do  their  banking  thiS:,way::iri:(the;}futljre.:»IYiei^5^^ 
effective  control  ovefSfj^irsdnal:::  fiiiaii(i^^:iS£tv65tiiM6^^^^ 
advantage  of  importaht''nevv,:t6(Slrihd(cg^  Be;crt^;'df fttiiSsfii^gtSfe 
in  an  all  new  way. 

Quieic  &  Reilly 

,  Quick  Way  brokerage  sen/ices  from  Quick  &  Reiily  Inc.,  the  nations 
third  largest  discount  brokerage,  include:  online  purchase  and  saie 
of  securities,  twenty-four  hours  a  day.  current  stock  and  option 
prices,  portfolio  management  and  automatic  tax  record  keeping. 
Transactions  are  executed  immediately  when  enterea  during 
business  hours  and  at  the  start  of  the  nexi  business  day  when 
entered  evenings  and  on  weekends. 

IMax  Ule 

Tickerscreen  is  a  financial  information  sen/ice  of  the  discount 
brokerage  Max  Ule  &  Co.  It  offers  closing  NYSE  prices,  commission 
comparisons,  and  direct  order  entry  of  buy  and  sell  orders  for 
clients  of  Max  Ule. 


Unified  Maniagement  Corporation 

Liquid  Green  is  a  family  of  no-load  mutual  funds  provided  by  Unified 
Managenrient  Corporation.  Online  access  allows  you  to  manage  your 
account  activities  at  your  convenience,  shifting  cash  reserves  in  ana 
out  of  funds  to  take  advantage  of  attractive  money  market  interest 


Those  first  telephone  words  "Hello, 
are  you  there  Watson?"  were  spoken 
shortly  after  the  turn  of  this  century. 
About  the  same  time  Wilbur  and  Orvllle 
Wright  were  assembling  bicycle  parts  to 
make  a  flying  machine.  That  is  about 
the  stage  of  Telecomputing  as  we  enter 
year  1988.  At  least  500  millionaires 
will  make  their  fortunes  in  telecomuting 
within  the  next  10  years  as  progress 
overcomes  existing  communications 
monopol i  es.